# Architecture principles whose category is Behavioral Patterns

> 13 records

This index as JSON: https://banes-lab.com/json/api/facets/architecture/category/behavioral-patterns

## Entries

- [Strategy Pattern](https://banes-lab.com/records/architecture/strategy-pattern.md): A design pattern that puts each interchangeable algorithm behind one interface, so the caller selects behavior by passing an object.
- [Template Method Pattern](https://banes-lab.com/records/architecture/template-method-pattern.md): A design pattern that fixes the steps of an algorithm in a base class and lets subclasses supply the steps that vary.
- [Observer Pattern](https://banes-lab.com/records/architecture/observer-pattern.md): A design pattern in which a subject publishes events to subscribers it does not know by name.
- [Mediator Pattern](https://banes-lab.com/records/architecture/mediator-pattern.md): A design pattern that routes the interactions between a set of objects through one coordinating object.
- [Command Pattern](https://banes-lab.com/records/architecture/command-pattern.md): A design pattern that wraps a request in an object, so it can be queued, deferred or undone.
- [State Pattern](https://banes-lab.com/records/architecture/state-pattern.md): A design pattern that gives each state of an object its own class, so behavior and legal transitions change with the state.
- [Chain of Responsibility Pattern](https://banes-lab.com/records/architecture/chain-of-responsibility-pattern.md): A design pattern that passes a request along an ordered list of handlers until one of them handles it.
- [Iterator Pattern](https://banes-lab.com/records/architecture/iterator-pattern.md): A design pattern that lets callers traverse a collection without seeing how it is stored.
- [Visitor Pattern](https://banes-lab.com/records/architecture/visitor-pattern.md): A design pattern that places each operation over a type hierarchy in its own visitor, so an operation is added without editing the element types.
- [Memento Pattern](https://banes-lab.com/records/architecture/memento-pattern.md): A design pattern in which an object captures its own state in an opaque snapshot it can later restore.
- [Null Object Pattern](https://banes-lab.com/records/architecture/null-object-pattern.md): A design pattern that represents absence with an object implementing the expected interface as a no-op.
- [Finite State Machine](https://banes-lab.com/records/architecture/finite-state-machine.md): A conceptual representation of behavior as a closed set of states and the events that move between them.
- [Statecharts](https://banes-lab.com/records/architecture/statecharts.md): A conceptual representation of a state machine extended with nested states and parallel regions.
