I will cover the topic "Identifying and creating elegant software solutions to complex business problems" in detail. In this article (Part I), I will cover the below chapters: Chapter 1: Introduction to Identifying and Creating Elegant Software Solutions Section 1.1: The Role of Software Solutions in Addressing Complex Business Problems 1.1.1. Understanding the … [Read more...] about How To Create Elegant Software Solutions to Complex Business Problems – Part 1
Software Design
Solid Code Design – Part 7 – Self-Referential Generics In Java
In this article, we will briefly discuss about self-referential generics with one example. Consider the below class definition: Here Bird is a self-referential generic type. T is a subclass of some parameterization of Bird. The expression T extends Bird<T> ensures that subtypes of Bird depends on themselves. For example, a bird type Goose extends Bird<Goose>: … [Read more...] about Solid Code Design – Part 7 – Self-Referential Generics In Java
Important Note – Java equals Method and Inheritance
In this article, we will check a few important points on overriding equals() method when we are using inheritance. We consider two scenarios: We will discuss the point with concrete examples for quick understanding. Scenario 1 - Semantics of equals changes in subclass Suppose, we have designed a class named Super as follows: We have also designed another class … [Read more...] about Important Note – Java equals Method and Inheritance
Solid Code Design – Part 6 – Advanced Java Generics
In Part 4 and Part 5, I introduced you with the concept of invariance and covariance respectively. In this article, I will cover contravariance. We will use the same type hierarchies and code from the Part 5. For your convenience, I will provide the type hierarchies once again here. Contravariance To take advantage of covariance, we use lower bounded wildcards as … [Read more...] about Solid Code Design – Part 6 – Advanced Java Generics
Solid Code Design – Part 5 – Advanced Java Generics
In Part 4, I introduced you with the concept of invariance. In this article, I will cover covariance. I will use the below type hierarchies for our discussion. Get Started To start, I will introduce you with the code for the above type hierarchies as given below. I will also introduce with the below generic class. For our convenience, I will … [Read more...] about Solid Code Design – Part 5 – Advanced Java Generics