Easy way to learn design patterns.
Reading any theorem ( in physics or mathematics) is a different
game from solving thousands of tricky examples based on that theorem.
The same way we can read the standard definition of any design
pattern and think we have understood it, but solving many real-life problems
through that knowledge is a different ball game altogether. In other words, “learning theory is very different from
solving many examples based on that theory.”
The very first rule of learning any design pattern is to solve
(or think) many examples around it, as much you can, that will make you feel
more confident on that particular topic.
There has to be some basic understanding of UML and OOPs
before you go ahead. Just don’t jump into any design pattern which you have heard in some interview. Or through your seniors, or from any other source. Also, don’t
go category by category, like I will finish all behavioral design patterns then
I will read creational and then structural; it doesn’t work in that way.
Below mentioned list is one of the best sequence to learn patterns
(it will not guarantee that you will understand all if you read in that
sequence only, but it will build excellent understanding step by step, as it
will start with subjects which are more common and easy to understand in
software engineering field) –
- Basic understanding of OOPs (especially encapsulation, inheritance, polymorphism, abstraction, encapsulation violation, associations, and composition relationship).
- Basic understanding of UML (notably different relationships between classes).
- Basic understanding of SLDC (especially requirement gathering and conversion from requirement to high-level system modeling).
- Basic design principles (i.e., Black box, white box, system boundary, basic design parameters, functional requirements, non-functional requirements).
- Types of relationships in OOPS.
- MVC architecture.
- Proxy design pattern.
- Whole-part relationship, composite design pattern.
- Iterator design pattern.
- Front controller architectural pattern.
- Mediator design pattern.
- Observer design pattern.
- Chain of responsibility design pattern.
- Adapter design pattern.
- Command design pattern.
- State design pattern.
- Flyweight design pattern.
- Factory.
- Factory method design pattern.
- Abstract factory design pattern.
- Singleton design pattern.
- Builder design pattern.
- Decorator proxy.
- Decorator design pattern.
- Visitor design pattern.
- Strategy design pattern.
- Template method design pattern.
- Bridge design pattern.
- Interpreter design pattern.
Thanks for reading it. To learn more about design patterns and basic design principles, please see my web page.
Comments
Post a Comment