# Design Patterns

- [Introduction](/notebook/design-patterns/introduction.md)
- [Classification of patterns](/notebook/design-patterns/classification-of-patterns.md)
- [Structural Design Patterns](/notebook/design-patterns/structural-design-patterns.md)
- [Adapter Design Pattern](/notebook/design-patterns/structural-design-patterns/adapter-design-pattern.md)
- [Bridge Design Pattern](/notebook/design-patterns/structural-design-patterns/bridge-design-pattern.md)
- [Composite Design Pattern](/notebook/design-patterns/structural-design-patterns/composite-design-pattern.md)
- [Decorator Design Pattern](/notebook/design-patterns/structural-design-patterns/decorator-design-pattern.md)
- [Facade Design Pattern](/notebook/design-patterns/structural-design-patterns/facade-design-pattern.md)
- [Flyweight Design Pattern](/notebook/design-patterns/structural-design-patterns/flyweight-design-pattern.md)
- [Private Class Data Design Pattern](/notebook/design-patterns/structural-design-patterns/private-class-data-design-pattern.md)
- [Proxy Design Pattern](/notebook/design-patterns/structural-design-patterns/proxy-design-pattern.md)
- [Behavioral Design Patterns](/notebook/design-patterns/behavioral-design-patterns.md)
- [Chain Of Responsibility](/notebook/design-patterns/behavioral-design-patterns/chain-of-responsibility.md)
- [Command Design Pattern](/notebook/design-patterns/behavioral-design-patterns/command-design-pattern.md)
- [Interpreter Design Pattern](/notebook/design-patterns/behavioral-design-patterns/interpreter-design-pattern.md)
- [Iterator Design Pattern](/notebook/design-patterns/behavioral-design-patterns/iterator-design-pattern.md)
- [Mediator Design Pattern](/notebook/design-patterns/behavioral-design-patterns/mediator-design-pattern.md)
- [Memento Design Pattern](/notebook/design-patterns/behavioral-design-patterns/memento-design-pattern.md)
- [Null Object Design Pattern](/notebook/design-patterns/behavioral-design-patterns/null-object-design-pattern.md)
- [Observer Design Pattern](/notebook/design-patterns/behavioral-design-patterns/observer-design-pattern.md): Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
- [State Design Pattern](/notebook/design-patterns/behavioral-design-patterns/state-design-pattern.md)
- [Strategy Design Pattern](/notebook/design-patterns/behavioral-design-patterns/strategy-design-pattern.md): lets the algorithm vary independently from clients that use it
- [Template Design Pattern](/notebook/design-patterns/behavioral-design-patterns/template-design-pattern.md)
- [Creational Design Patterns](/notebook/design-patterns/creational-design-patterns.md)
- [Abstract Factory Design Pattern](/notebook/design-patterns/creational-design-patterns/abstract-factory-design-pattern.md)
- [Builder Design Pattern](/notebook/design-patterns/creational-design-patterns/builder-design-pattern.md)
- [Factory Method Design Pattern](/notebook/design-patterns/creational-design-patterns/factory-method-design-pattern.md): Design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
- [Object Pool Design Pattern](/notebook/design-patterns/creational-design-patterns/object-pool-design-pattern.md)
- [Prototype Design Pattern](/notebook/design-patterns/creational-design-patterns/prototype-design-pattern.md)
- [Singleton Design Pattern](/notebook/design-patterns/creational-design-patterns/singleton-design-pattern.md)
- [Java Pass by Value or Pass by Reference](/notebook/design-patterns/java-pass-by-value-or-pass-by-reference.md)
