Software Design Patterns
Design patterns are used to represent some of the best practices adapted by experienced object-oriented software developers. A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples.
Recent Articles on Design Patterns
Some of the popular design patterns:
- Design Patterns | Set 1 (Introduction)
- Design Patterns | Set 2 (Factory Method)
- Observer Pattern | Set 1 (Introduction)
- Observer Pattern | Set 2 (Implementation)
- Singleton Design Pattern
- Decorator Pattern | Set 1 (Background)
- The Decorator Pattern | Set 2 (Introduction and Design)
- Strategy Pattern | Set 1 (Introduction)
- Strategy Pattern | Set 2 (Implementation)
- Adapter Pattern
- Command Pattern
- Iterator Pattern
- Curiously recurring template pattern (CRTP)
- Flyweight Design Pattern
- Facade Design Pattern | Introduction
- Proxy Design Pattern
- Composite Design Pattern
- Prototype Design Pattern
- Abstract Factory Pattern
- Bridge Design Pattern
- Template Method Design Pattern
- Builder Design Pattern
- Chain of Responsibility Design Pattern
- Unified Modeling Language (UML) | Class Diagrams
Design Questions :
- Design a Parking lot using Object Oriented Principles
- Design data structures and algorithms for in-memory file system
- How to prevent Singleton Pattern from Reflection, Serialization and Cloning?
- Java Singleton Design Pattern Practices with Examples
If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above