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) –
  1. Basic understanding of OOPs (especially encapsulation, inheritance, polymorphism, abstraction, encapsulation violation, associations, and composition relationship).
  2. Basic understanding of UML (notably different relationships between classes).
  3. Basic understanding of SLDC (especially requirement gathering and conversion from requirement to high-level system modeling).
  4. Basic design principles (i.e., Black box, white box, system boundary, basic design parameters, functional requirements, non-functional requirements).
  5. Types of relationships in OOPS.
  6. MVC architecture.
  7. Proxy design pattern.
  8. Whole-part relationship, composite design pattern.
  9. Iterator design pattern.
  10. Front controller architectural pattern.
  11. Mediator design pattern.
  12. Observer design pattern.
  13. Chain of responsibility design pattern.
  14. Adapter design pattern.
  15. Command design pattern.
  16. State design pattern.
  17. Flyweight design pattern.
  18. Factory.
  19. Factory method design pattern.
  20. Abstract factory design pattern.
  21. Singleton design pattern
  22. Builder design pattern.
  23. Decorator proxy.
  24. Decorator design pattern.
  25. Visitor design pattern.
  26. Strategy design pattern.
  27. Template method design pattern.
  28. Bridge design pattern.
  29. Interpreter design pattern.
This list is for GoF design patterns.




Thanks for reading it. To learn more about design patterns and basic design principles, please see my web page.

Comments

Popular posts from this blog

Non-virtual interface idiom (NVI)

Architectural patterns => Mud to structure => layers.

Architectural style -> Adoptable system -> Reflection.