Design-Patterns

Design principles (SOLID)

  1. Single responsibility
  2. Open closed principle
  3. Liskov's substitution principle
  4. Interface segregation principle
  5. Dependency inversion principle

OOP principles

  1. Encapsulate what varies
  2. Program for interface not implementation
  3. Favor composition over inheritance

Most used design patterns:

Structural

  1. Factory method Notes Code
  2. Singleton Notes Code

Creational

  1. Adapter Notes Code
  2. Composite Notes Code
  3. Decorator Notes Code
  4. Proxy Notes Code

Behavioral

  1. Chain of Responsibility Notes Code
  2. Command Notes Code
  3. Iterator Notes Code
  4. Observer Notes Code
  5. State Notes Code
  6. Strategy Notes Code