> For the complete documentation index, see [llms.txt](https://blog.sunilgudivada.dev/notebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.sunilgudivada.dev/notebook/design-patterns.md).

# Design Patterns

- [Introduction](https://blog.sunilgudivada.dev/notebook/design-patterns/introduction.md)
- [Classification of patterns](https://blog.sunilgudivada.dev/notebook/design-patterns/classification-of-patterns.md)
- [Structural Design Patterns](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns.md)
- [Adapter Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/adapter-design-pattern.md)
- [Bridge Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/bridge-design-pattern.md)
- [Composite Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/composite-design-pattern.md)
- [Decorator Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/decorator-design-pattern.md)
- [Facade Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/facade-design-pattern.md)
- [Flyweight Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/flyweight-design-pattern.md)
- [Private Class Data Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/private-class-data-design-pattern.md)
- [Proxy Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/structural-design-patterns/proxy-design-pattern.md)
- [Behavioral Design Patterns](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns.md)
- [Chain Of Responsibility](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/chain-of-responsibility.md)
- [Command Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/command-design-pattern.md)
- [Interpreter Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/interpreter-design-pattern.md)
- [Iterator Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/iterator-design-pattern.md)
- [Mediator Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/mediator-design-pattern.md)
- [Memento Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/memento-design-pattern.md)
- [Null Object Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/null-object-design-pattern.md)
- [Observer Design Pattern](https://blog.sunilgudivada.dev/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](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/state-design-pattern.md)
- [Strategy Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/strategy-design-pattern.md): lets the algorithm vary independently from clients that use it
- [Template Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/behavioral-design-patterns/template-design-pattern.md)
- [Creational Design Patterns](https://blog.sunilgudivada.dev/notebook/design-patterns/creational-design-patterns.md)
- [Abstract Factory Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/creational-design-patterns/abstract-factory-design-pattern.md)
- [Builder Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/creational-design-patterns/builder-design-pattern.md)
- [Factory Method Design Pattern](https://blog.sunilgudivada.dev/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](https://blog.sunilgudivada.dev/notebook/design-patterns/creational-design-patterns/object-pool-design-pattern.md)
- [Prototype Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/creational-design-patterns/prototype-design-pattern.md)
- [Singleton Design Pattern](https://blog.sunilgudivada.dev/notebook/design-patterns/creational-design-patterns/singleton-design-pattern.md)
- [Java Pass by Value or Pass by Reference](https://blog.sunilgudivada.dev/notebook/design-patterns/java-pass-by-value-or-pass-by-reference.md)
