Software design patterns

Software design patterns are reusable solution to a commonly occurring problem. It is not a ready to use code solution like it could be an algorithm, but it is a structural solution or approach for a given problem putting the basis or the template for how to solve the problem. The same pattern applied to different problems may give two different results. The reason why they are so important is, first of all, they will speed up the development and if it is well understood within the team, the on-boarding of a new team member will be much more easier since there will be a common language used across the team and finally, we don’t need to reinvent the wheel each time. The software design patterns are grouped into three main categories and with this series of articles we are going through these categories and explain all of them. With this article we are going to briefly introduce the three groups, with the next ones we will go into the details of each group.

As we said above the software design patterns are grouped into three categories and these are:

The Creational design patterns

The creational patterns is the group of software design patterns that deal with object creation mechanism. The creational design patterns solve the problem of creating the objects that could result in too much complexity by controlling this. This group is then divided into two subgroups

  • object-creational patterns: defer part of the object creation to another object
  • class-creational patterns: defer the object creation to subclasses

The goal of this pattern is to separate a system from how its objects are created, composed and represented. This type of patterns introduce a lot of flexibility and removes all the hard-coded/explicit references in the concrete classes from the ones that needs to instantiate them.

The Structural design patterns

Structural design patterns are those that simplify the design of large object structures by identifying relationships between them. In short they will help us in simplifying the approach the design and relationships across all of our application components.

The Behavioral patterns

As you can guess, the behavioral software design pattern is concerned with the behavior of the objects and in particular the interaction between the objects. This patterns describe not only objects and classes but goes deeper into how they communicate between each other.

I hope you enjoyed this small introduction about the software design patterns, if so please comment and share

d3

d3 is an experienced Software Engineer/Developer/Architect/Thinker with a demonstrated history of working in the information technology and services industry. Really passionate about technology, programming languages and problem solving. He doesn't like too much the self celebration and prefers to use that time doing something useful ...i.e. coding

You may also like...