Software Design Patterns Last Updated : 31 Aug, 2018 Read Discuss Courses 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 Singleton Class in Java Singleton Design Pattern in Java Singleton Design Practices with Examples Prevent Singleton Patterns from Reflection, Serialization and Cloning 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 Iterator Pattern of a Single Linked List 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