As we know, software design isn’t the code itself but the way that code must be structured in order to have a higher level of control over it. Patterns themselves are repeatable solutions to problems that occur constantly in software design. These type of structured ways of designing software aren’t finished designs that can be already transformed into code but they are descriptions that show how to solve certain problems. They are normally templates used in order to have a richer idea on what it will be developed in the future.
There are mainly 3 types of design patterns:
-
Creational design
These patterns approach design by the instantiation of classes. They are divided in class creation which inherit in the instantiation step and object creational patterns that use delegation as it should be in order to achieve certain task. Some of these are:
- Abstract Factory
- Builder
- Factory Method
- Object Pool
- Prototype
- Singleton
-
Structural design
This type of pattern takes a look on how classes and objects are composed. The creation of compose interfaces is mainly by using iheritance. Some of these are:
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Private Class Data
- Proxy
-
Behavioral design patterns
The interaction between objects inside a class happens in a behavioral pattern. These patterns are mainly focused with communication between objects. Some examples of these are:
- Chain of responsibility
- Command
- Interpretre
- Mediator
- Memeto
- Null Object
- Observer
- State
- Strategy
- Template method
- Visitor
Bloggers involved in the creation of this post:
All this information was taken from Sourcemaking.com and all rights belong to them.