# Behavioral Patterns

> Every term in this category is listed as one record, with its kind, its definition and its aliases, the principles whose relations name it, the principle or…

Page: Ontology · Lexicon
Canonical: https://banes-lab.com/ontology/lexicon#lex-category-behavioral-patterns

Every term in this category is listed as one record, with its kind, its definition and its aliases, the principles whose relations name it, the principle or contract that carries the same name where one exists, and the layer its category belongs to.

### Centralized Interaction Logic

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to concentrate how a set of objects interact within one mediating component.

Referenced by
[Mediator Pattern](https://banes-lab.com/records/arch/mediator-pattern.md)

### Class Count

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which extracting each algorithm into its own class raises the total number of classes.

Referenced by
[Strategy Pattern](https://banes-lab.com/records/arch/strategy-pattern.md)

### Class Proliferation

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which modeling each state as its own class multiplies the number of classes.

Referenced by
[State Pattern](https://banes-lab.com/records/arch/state-pattern.md)

### Controlled Variation

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to let subclasses vary only the designated steps of a fixed algorithm.

Referenced by
[Template Method Pattern](https://banes-lab.com/records/arch/template-method-pattern.md)

### Coordination Complexity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree of complexity in how objects must coordinate, which motivates a mediator.

Referenced by
[Mediator Pattern](https://banes-lab.com/records/arch/mediator-pattern.md)

### Decoupled Notification

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to notify interested parties of a change without the source knowing who they are.

Referenced by
[Observer Pattern](https://banes-lab.com/records/arch/observer-pattern.md)

### Deferred Execution

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to capture a request as an object so it can be run later, queued, or logged.

Referenced by
[Command Pattern](https://banes-lab.com/records/arch/command-pattern.md)

### Direct Callback Coupling

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Wiring a source to notify specific recipients by direct call, coupling it to each one.

Referenced by
[Observer Pattern](https://banes-lab.com/records/arch/observer-pattern.md)

### Direct Method Invocation

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Invoking an operation by direct method call, so it cannot be queued, logged, or undone.

Referenced by
[Command Pattern](https://banes-lab.com/records/arch/command-pattern.md)

### Duplicated Workflow

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Repeating the same overall algorithm in many places, each copy re-implementing the shared steps.

Referenced by
[Template Method Pattern](https://banes-lab.com/records/arch/template-method-pattern.md)

### Element Stability

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which adding new operations stays easy only while the set of element types stays fixed.

Referenced by
[Visitor Pattern](https://banes-lab.com/records/arch/visitor-pattern.md)

### Exhaustive State Reasoning

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to enumerate and reason about every state a system can occupy and every transition between them.

Referenced by
[Finite State Machine](https://banes-lab.com/records/arch/finite-state-machine.md)

### Explicit State Model

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that an object's states and their transitions be modeled explicitly.

Referenced by
[State Pattern](https://banes-lab.com/records/arch/state-pattern.md)

### Explicit State Set

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that the complete set of possible states be defined up front.

Referenced by
[Finite State Machine](https://banes-lab.com/records/arch/finite-state-machine.md)

### Exposed Internal Representation

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Forcing clients to traverse a collection through its internal structure, coupling them to that structure.

Referenced by
[Iterator Pattern](https://banes-lab.com/records/arch/iterator-pattern.md)

### External State Reach-In

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Reading or writing an object's internal state from outside to snapshot it, breaking its encapsulation.

Referenced by
[Memento Pattern](https://banes-lab.com/records/arch/memento-pattern.md)

### Fail-Safe Defaults

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Defaulting to safe, benign behavior when a value or handler is absent rather than failing or branching.

Referenced by
[Null Object Pattern](https://banes-lab.com/records/arch/null-object-pattern.md)

### Flat State Explosion

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Enumerating every combination of conditions as a separate flat state, so the state count explodes.

Referenced by
[Statecharts](https://banes-lab.com/records/arch/statecharts.md)

### Framework Reuse

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to reuse a fixed algorithm skeleton across many concrete implementations.

Referenced by
[Template Method Pattern](https://banes-lab.com/records/arch/template-method-pattern.md)

### Guarded Transitions

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to permit a state transition only when a specified condition holds.

Referenced by
[Statecharts](https://banes-lab.com/records/arch/statecharts.md)

### Hierarchical States

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to nest states so shared behavior is defined once on an enclosing state.

Referenced by
[Statecharts](https://banes-lab.com/records/arch/statecharts.md)

### Inheritance Coupling

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which basing a template method on subclassing binds subclasses tightly to the base class.

Referenced by
[Template Method Pattern](https://banes-lab.com/records/arch/template-method-pattern.md)

### Interchangeable Algorithms

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that competing algorithms share one interface so they can be swapped freely.

Referenced by
[Strategy Pattern](https://banes-lab.com/records/arch/strategy-pattern.md)

### Large Conditional Logic

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Selecting behavior with a large branching conditional instead of pluggable strategy objects.

Referenced by
[Strategy Pattern](https://banes-lab.com/records/arch/strategy-pattern.md)

### Lazy Traversal

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to produce a collection's elements one at a time on demand rather than all at once.

Referenced by
[Iterator Pattern](https://banes-lab.com/records/arch/iterator-pattern.md)

### Mediator God Object

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which concentrating interaction logic in a mediator risks growing it into an overloaded object.

Referenced by
[Mediator Pattern](https://banes-lab.com/records/arch/mediator-pattern.md)

### Memory Footprint

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree of memory consumed by retaining state snapshots for later restoration.

Referenced by
[Memento Pattern](https://banes-lab.com/records/arch/memento-pattern.md)

### Mesh Dependencies

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Letting every object refer directly to every other, forming a dense mesh of point-to-point dependencies.

Referenced by
[Mediator Pattern](https://banes-lab.com/records/arch/mediator-pattern.md)

### Monolithic Handler

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Handling every case in one large handler instead of a chain of focused, single-purpose handlers.

Referenced by
[Chain of Responsibility Pattern](https://banes-lab.com/records/arch/chain-of-responsibility-pattern.md)

### Null-Check Elimination

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to remove scattered null checks by substituting a benign do-nothing object.

Referenced by
[Null Object Pattern](https://banes-lab.com/records/arch/null-object-pattern.md)

### Operation Extension Without Element Change

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to add new operations over a structure without modifying its element classes.

Referenced by
[Visitor Pattern](https://banes-lab.com/records/arch/visitor-pattern.md)

### Ordered Fallthrough

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to offer a request to handlers in sequence until one of them accepts it.

Referenced by
[Chain of Responsibility Pattern](https://banes-lab.com/records/arch/chain-of-responsibility-pattern.md)

### Parallel Regions

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to model concurrently-active, independent regions of state within one machine.

Referenced by
[Statecharts](https://banes-lab.com/records/arch/statecharts.md)

### Pluggable Handling

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to add or reorder request handlers without changing the ones already in the chain.

Referenced by
[Chain of Responsibility Pattern](https://banes-lab.com/records/arch/chain-of-responsibility-pattern.md)

### Request Queuing

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to hold requests captured as objects in a queue for later execution.

Referenced by
[Command Pattern](https://banes-lab.com/records/arch/command-pattern.md)

### Runtime Behavior Selection

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to choose among interchangeable algorithms at runtime.

Referenced by
[Strategy Pattern](https://banes-lab.com/records/arch/strategy-pattern.md)

### Shared Behavioral Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that the real object and its null stand-in implement one common interface.

Referenced by
[Null Object Pattern](https://banes-lab.com/records/arch/null-object-pattern.md)

### Silent No-Op Risk

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which a do-nothing stand-in can hide an error.

Referenced by
[Null Object Pattern](https://banes-lab.com/records/arch/null-object-pattern.md)

### Snapshot/Restore

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to capture an object's state and later restore it to that captured point.

Referenced by
[Memento Pattern](https://banes-lab.com/records/arch/memento-pattern.md)

### Stable Algorithm Skeleton

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that the overall algorithm's structure stay fixed while specific steps vary.

Referenced by
[Template Method Pattern](https://banes-lab.com/records/arch/template-method-pattern.md)

### Stable Element Hierarchy

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that the set of element types stay fixed so new operations can be added over them.

Referenced by
[Visitor Pattern](https://banes-lab.com/records/arch/visitor-pattern.md)

### State Explosion

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The degree to which the number of explicit states grows unmanageably as conditions multiply.

Referenced by
[Finite State Machine](https://banes-lab.com/records/arch/finite-state-machine.md)

### State-Local Behavior

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to attach behavior to each state so an object acts according to its current state.

Referenced by
[State Pattern](https://banes-lab.com/records/arch/state-pattern.md)

### Structure-Agnostic Iteration

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The ability to traverse a collection without depending on how it is internally organized.

Referenced by
[Iterator Pattern](https://banes-lab.com/records/arch/iterator-pattern.md)

### Subject/Subscriber Contract

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement of an agreed interface by which subjects notify and subscribers receive updates.

Referenced by
[Observer Pattern](https://banes-lab.com/records/arch/observer-pattern.md)

### Type-Switch Dispatch

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
Dispatching behavior with a switch on an object's type instead of double dispatch through a visitor.

Referenced by
[Visitor Pattern](https://banes-lab.com/records/arch/visitor-pattern.md), [Dynamic Dispatch](https://banes-lab.com/records/arch/dynamic-dispatch.md)

### Uniform Handler Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that every handler in a chain share one interface so requests pass along uniformly.

Referenced by
[Chain of Responsibility Pattern](https://banes-lab.com/records/arch/chain-of-responsibility-pattern.md)

### Uniform Traversal Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lex-category-behavioral-patterns.md)
- Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)

Details

Definition
The requirement that collections expose one common interface for stepping through their elements.

Referenced by
[Iterator Pattern](https://banes-lab.com/records/arch/iterator-pattern.md)

## Links to

- [capability](https://banes-lab.com/records/kind/capability.md)
- [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
- [Mediator Pattern](https://banes-lab.com/records/arch/mediator-pattern.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [Strategy Pattern](https://banes-lab.com/records/arch/strategy-pattern.md)
- [State Pattern](https://banes-lab.com/records/arch/state-pattern.md)
- [Template Method Pattern](https://banes-lab.com/records/arch/template-method-pattern.md)
- [Observer Pattern](https://banes-lab.com/records/arch/observer-pattern.md)
- [Command Pattern](https://banes-lab.com/records/arch/command-pattern.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [Visitor Pattern](https://banes-lab.com/records/arch/visitor-pattern.md)
- [Finite State Machine](https://banes-lab.com/records/arch/finite-state-machine.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Iterator Pattern](https://banes-lab.com/records/arch/iterator-pattern.md)
- [Memento Pattern](https://banes-lab.com/records/arch/memento-pattern.md)
- [principle](https://banes-lab.com/records/kind/principle.md)
- [Null Object Pattern](https://banes-lab.com/records/arch/null-object-pattern.md)
- [Statecharts](https://banes-lab.com/records/arch/statecharts.md)
- [Chain of Responsibility Pattern](https://banes-lab.com/records/arch/chain-of-responsibility-pattern.md)
- [Dynamic Dispatch](https://banes-lab.com/records/arch/dynamic-dispatch.md)
