An in-depth discussion on State Design Pattern
State Design pattern, another one of the most common Design pattern. It is used when we want to represent some kind of state in our application.
State Design pattern is one of the Behavioral Design patterns as documented by Gang of Four(GoF). This pattern is closely related to the Finite-State Machine(FSM). It can actually be called an application of FSM.
This Design pattern allows for a change in behavior based on its internal state changes.
This Design pattern is used to separate action that needs to be taken at different states. …
In detail discussion on Builder Design Pattern
The Builder Design pattern is another very common design pattern. It is one of the Gang Of Four(GoF) creational design patterns. This is a great pattern when you have to create a complex object which requires multiple parameters.
This Design pattern is very often used in our code but rarely do we see people creating their Builder pattern. e.g. StringBuilder. It is ideal for creating objects which have several parameters/arguments, but once all the arguments are set, it is supposed to be immutable.
This pattern is very useful when we have a complex…
A detailed discussion on most common Design pattern — Singleton
Singleton design pattern is the most commonly used design patterns. It could be because it is very simple to understand and it solves an important problem in Software Engineering.
Singleton is one of the Gang of Four(GoF) design patterns. It is a creational design pattern, meaning it deals the with creation of the object.
In a scenario when you need exactly one object of a class, you would use Singleton. Singleton restricts the creation of objects of the said class to only one.
This Singleton instance of the class can…
An overview of Software Design Patterns
Wikipedia says following about the Software Design Patterns -
A Software Design Pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.
It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations.
Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
Design patterns are templates to solve…
This is the first blog in the series of many to come.
Who are we?
We are a group of Software Engineers just like yourself. We have learnt things the hard way. Sometimes finding the solution in 19th answer to that question on stackoverflow.com. Sometimes going on for days without the solution and itching in the brain.
We try to work on some of the most interesting problems. We are open for a free consultation. …
We write about Computer Programs & Technology.