Behavioral

Chain of Responsibility Pattern

The Chain of Responsibility Pattern is a behavioral design pattern that enables a request to be passed along a chain of handlers, allowing for flexible and dynamic processing of requests.

Command Pattern

The Command Pattern is a behavioral design pattern that encapsulates requests as objects, enabling parameterization, queuing, and logging of operations for greater flexibility in software design.

Interpreter Pattern

The Interpreter Pattern is a behavioral design pattern that provides a way to evaluate sentences in a language by representing grammar rules as classes.

Iterator Pattern

The Iterator Pattern is a behavioral design pattern that allows sequential access to elements of a collection without exposing its internal structure.

Mediator Pattern

The Mediator Pattern is a behavioral design pattern that centralizes communication between objects, promoting loose coupling and simplifying interactions.

Memento Pattern

The Memento Pattern is a behavioral design pattern that allows capturing and restoring an object’s state, enabling undo functionality and preserving encapsulation.

Observer Pattern

The Observer Pattern is a behavioral design pattern that establishes a one-to-many dependency between objects, enabling automatic updates to dependents when the subject’s state changes.

State Pattern

The State Pattern is a behavioral design pattern that enables an object to change its behavior dynamically based on its internal state, promoting cleaner and more maintainable code.

Strategy Pattern

The Strategy Pattern is a behavioral design pattern that allows the selection of algorithms at runtime by encapsulating them in separate classes, promoting flexibility and reusability.

Template Method Pattern

The Template Method Pattern is a behavioral design pattern that defines the structure of an algorithm in a base class while allowing subclasses to customize specific steps.

Visitor Pattern

The Visitor Pattern is a behavioral design pattern that enables adding new operations to existing object structures without altering their classes, promoting flexibility and maintainability.