Domain-Driven Design: How Top Teams Build Software That Actually Works

Domain Driven Design

As software developers/ software architects, we often come across the question, “Why should I use your application?” Most of the enterprise-grade applications that we work on, whether greenfield or brownfield, have already been worked on or are already present. So why should a client use your application 🤔? What problems does it solve that other … Read more

State Design Pattern

State Design Pattern

The State Pattern is a behavioral design pattern that allows an object to alter its behavior when its internal state changes. How can an object alter its behavior 😵?? Let us understand this with the help of an example. Suppose you want to start an online cab driving service like Uber. At any point in … Read more

Categories Uncategorised

Template Method Pattern

Template pattern

The Template Method Pattern is a behavioral design pattern that defines the skeleton of an algorithm in a method, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure. Umm 🤔… How does it make sense to define skeleton of an algorithm while deferring to … Read more

Categories Uncategorised

Iterator Design Pattern

Iterator Design Pattern

The Iterator Design Pattern is a behavioral design pattern that provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation. Umm 🤔… What do you mean by an aggregate ?? By aggregate we mean a collection/container that stores a group of things (e.g., a list, array, tree, graph … Read more

Categories Uncategorised

Observer Design Pattern

Observer Design Pattern

The Observer pattern is a behavioral design pattern that defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. If this definition doesn’t make complete sense right now😰, don’t worry. By the time we reach the end of this blog, it will become … Read more

Categories Uncategorised

Proxy Design Pattern

Proxy Design Pattern

Proxy Pattern is a structural design pattern that provides a surrogate or placeholder for another object to control access to it. Umm…what?? 🤔 You have probably heard of proxy servers in networking.In simple terms, a proxy server acts as an intermediary between users and the websites they access. When you use a proxy, your request doesn’t go directly … Read more

Categories Uncategorised

Decorator Design Pattern

Decorator Design Pattern

Decorator pattern is a structural design pattern that attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. So what exactly is that supposed to mean ?? Let us assume that our client is a travel company specializing in trips from the United States to Dubai. In addition … Read more

Builder Design Pattern

Builder pattern is a creational design pattern that builds a complex object step by step.It separates the construction of a complex object from its representation, so that the same construction process can create different representations. Confusing right ?? Let’s understand this with the help on an example.Suppose you have an object to create a user … Read more

Factory Design Pattern

The factory design pattern is a creational design pattern, that provides an interface for creating objects, but allows subclasses to alter the type of objects that will be created.Rather than calling a constructor directly to create an object, we use factory method to create that object based on some input or condition. I know…I know…didn’t … Read more

Singleton Design Pattern

Singleton Design Pattern is a creational design pattern which ensures that a class has only one instance and provides a global point of access to that instance. I know you might be thinking – “Why is there an entire design pattern just to make sure only one object is instantiated??” To tell you the truth, … Read more