As a beginner developer and fresh graduated boy I’ve started to look into some base concepts of programming in order to keep growing up as a professional. I realized that there are dozens of concepts that students usually take for granted and are really important in “real life”. One of them is Design Patterns.
Design Patterns aren’t the silver bullet that solve all your problems. After years of programming languages been used in the world, software developers noticed that some logical solutions have been used repeatedly over and over again. In 1995, four developers published Design Patterns: Elements of Reusable Object-Oriented Software with 23 patterns solving various problems of object-oriented design and became a best-seller very quickly. Nowadays it’s known by the GoF book. GoF = Gang of Four.
That’s what make Design Patterns really important, they’re manuals of how to deal with logical problems in programming. If you’re a developer you should know and study about it because during your carrer you will face this problems every day.
Every design pattern can be described in terms of three aspects:
- Intent briefly describes both the problem and the solution.
- Motivation explains the problem and the solution the pattern makes possible.
- Structure shows each part of the pattern and how they are related.
Patterns also can be classified into groups of intents
- Creational patterns provide object creation mechanisms that increase flexibility and reuse of existing code.
- Structural patterns explain how to assemble objects and classes into larger structures, while keeping the structures flexible and efficient.
- Behavioral patterns take care of effective communication and the assignment of responsibilities between objects.
Any hints or comments are welcome, as many information and discussion better :)