/LearningDesignPatterns

My journey into design patterns...

Primary LanguageC#

My journey into Design Patterns.

Resources I found useful:

Minor resources:

OO Principles (from Head First Design Patterns)

  • Encapsulate what varies
  • Favor composition over inheritance
  • Program to interface, not implementation
  • Strive for loosely coupled designs between objects that interact
  • Classes should be open for extension but closed for modification (Open/closed principle)
  • Depend on abstractions. Do not depend on concrete classes (Dependency Inversion Principle)
  • Only talk to your friends (Law of Demeter (LoD) or principle of least knowledge)
  • Don't call us, we'll call you (Hollywood principle)
  • A class should have only one reason to change (Single responsibility principle)