Design Patterns

In software Engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design.


  • Behavioral Design Patterns
  1. Command Pattern
  2. Chain Responsibility Pattern
  3. Iterator Pattern
  4. Interpreter Pattern
  5. State Pattern
  6. Strategy Pattern
  7. Null Object Pattern
  8. Observer Pattern
  9. Visitor Pattern
  10. Template Method Pattern
  11. Memento Pattern
  • Creational Design Patterns
  1. Factory Method Pattern
  2. Singleton Pattern
  3. Abstract Factory Pattern
  4. Builder Pattern
  5. Prototype Pattern
  6. Object Pool Pattern
  • Structural Design Patterns
  1. Adapter Pattern
  2. Bridge Pattern
  3. Composite Pattern
  4. Decorator Pattern
  5. Facade Pattern
  6. Flyweight Pattern
  7. Proxy Pattern
  8. Private Class Data Pattern
  • J2EE Design Patterns
Benefits of Design Patterns:


  • Provides industry standard approach to solve a recurring problem.
  • Promotes reusability that leads to more robust and highly maintainable code.
  • Helps in reducing total cost of ownership(TCO) of the software product. 
  • Makes our code easy to understand and debug.
Criticism:
  • Targets the wrong problem
  • Lacks formal foundations
  • Does not differ significantly from other abstractions
  • Leads to inefficient solutions


Comments