# 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#lexicon-category-behavioral-patterns

Listed in [Ontology · Lexicon](https://banes-lab.com/api/pages/ontology/lexicon.md), after [Architecture Review Evolution Governance](https://banes-lab.com/ontology/lexicon/lexicon-category-architecture-review-evolution-governance.md) and before [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/lexicon/lexicon-category-causality-ordering-distributed-time.md).

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. A tag category also gives each term an example, which is the file the tag places or the rename from a refused word onto a covering tag.

### Centralized Interaction Logic

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/mediator-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Class Count

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/strategy-pattern.md)

How it is checked

Checked by
the tension resolution with strategy-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Class Proliferation

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/state-pattern.md)

How it is checked

Checked by
the tension resolution with state-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Controlled Variation

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/template-method-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Coordination Complexity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/mediator-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Decoupled Notification

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/observer-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Deferred Execution

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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, held in a queue, or logged.

Aliases
Request Queuing

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

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Direct Callback Coupling

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/observer-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Direct Method Invocation

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/command-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Duplicated Workflow

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/template-method-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Element Stability

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/visitor-pattern.md)

How it is checked

Checked by
the tension resolution with visitor-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Exhaustive State Reasoning

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/finite-state-machine.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Explicit State Model

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/state-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Explicit State Set

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/finite-state-machine.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Exposed Internal Representation

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/iterator-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### 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/lexicon-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/architecture/memento-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Fail-Safe Defaults

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/null-object-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Flat State Explosion

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/statecharts.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Framework Reuse

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/template-method-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Guarded Transitions

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/statecharts.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Hierarchical States

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/statecharts.md)

Distinct from
[Guarded Transitions](https://banes-lab.com/records/lexicon/guarded-transitions.md): Hierarchical states nest states to share behavior, while guarded transitions condition a move between states.

Distinct from
[Parallel Regions](https://banes-lab.com/records/lexicon/parallel-regions.md): Hierarchical states nest one state inside another, while parallel regions run independent states at the same time.

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Inheritance Coupling

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/template-method-pattern.md)

How it is checked

Checked by
the tension resolution with template-method-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Interchangeable Algorithms

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/strategy-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Large Conditional Logic

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/strategy-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Lazy Traversal

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/iterator-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Mediator God Object

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/mediator-pattern.md)

How it is checked

Checked by
the tension resolution with mediator-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Memory Footprint

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/memento-pattern.md)

How it is checked

Checked by
the tension resolution with memento-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Mesh Dependencies

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/mediator-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Monolithic Handler

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/chain-of-responsibility-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Null-Check Elimination

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/null-object-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Operation Extension Without Element Change

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/visitor-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Ordered Fallthrough

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/chain-of-responsibility-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Parallel Regions

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/statecharts.md)

Distinct from
[Guarded Transitions](https://banes-lab.com/records/lexicon/guarded-transitions.md): Parallel regions are independent states active at once, while guarded transitions condition one move between states.

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Pluggable Handling

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/chain-of-responsibility-pattern.md)

Distinct from
[Ordered Fallthrough](https://banes-lab.com/records/lexicon/ordered-fallthrough.md): Pluggable handling adds or reorders handlers without changing the others, while ordered fallthrough offers a request to each handler in turn until one accepts.

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Runtime Behavior Selection

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/strategy-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Shared Behavioral Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/null-object-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### 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/lexicon-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/architecture/null-object-pattern.md)

How it is checked

Checked by
the tension resolution with null-object-pattern

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Snapshot/Restore

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/memento-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Stable Algorithm Skeleton

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/template-method-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Stable Element Hierarchy

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/visitor-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### State Explosion

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/finite-state-machine.md)

How it is checked

Checked by
the tension resolution with finite-state-machine

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### State-Local Behavior

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/state-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Structure-Agnostic Iteration

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/iterator-pattern.md)

Distinct from
[Lazy Traversal](https://banes-lab.com/records/lexicon/lazy-traversal.md): Structure-agnostic iteration hides how a collection is organized, while lazy traversal produces its elements only on demand.

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Subject/Subscriber Contract

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/observer-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Type-Switch Dispatch

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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
[Dynamic Dispatch](https://banes-lab.com/records/architecture/dynamic-dispatch.md), [Visitor Pattern](https://banes-lab.com/records/architecture/visitor-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Uniform Handler Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/chain-of-responsibility-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

### Uniform Traversal Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Behavioral Patterns](https://banes-lab.com/ontology/lexicon/lexicon-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/architecture/iterator-pattern.md)

How it is checked

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

Population
The term's definition and every architecture edge that names the term

Freshness
A verdict stands until the definition, the term's kind or an edge that names it changes

Refusal
The resolution gate fails an edge that resolves to no term, and a definition that opens as another kind

Observation
The resolution validator's pass over every edge target and every definition opening

Evidence
Watched to fire and to accept: a suite plants a term no edge names, a dangling dependency and a second check home, and the bundled terms pass

Authoritative side
The term record, which every edge that names the term cites

Depends on
Not answered

Shape it refuses
Not answered

## 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/architecture/mediator-pattern.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [Strategy Pattern](https://banes-lab.com/records/architecture/strategy-pattern.md)
- [State Pattern](https://banes-lab.com/records/architecture/state-pattern.md)
- [Template Method Pattern](https://banes-lab.com/records/architecture/template-method-pattern.md)
- [Observer Pattern](https://banes-lab.com/records/architecture/observer-pattern.md)
- [Command Pattern](https://banes-lab.com/records/architecture/command-pattern.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [Visitor Pattern](https://banes-lab.com/records/architecture/visitor-pattern.md)
- [Finite State Machine](https://banes-lab.com/records/architecture/finite-state-machine.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Iterator Pattern](https://banes-lab.com/records/architecture/iterator-pattern.md)
- [Memento Pattern](https://banes-lab.com/records/architecture/memento-pattern.md)
- [principle](https://banes-lab.com/records/kind/principle.md)
- [Null Object Pattern](https://banes-lab.com/records/architecture/null-object-pattern.md)
- [Statecharts](https://banes-lab.com/records/architecture/statecharts.md)
- [Guarded Transitions](https://banes-lab.com/records/lexicon/guarded-transitions.md)
- [Parallel Regions](https://banes-lab.com/records/lexicon/parallel-regions.md)
- [Chain of Responsibility Pattern](https://banes-lab.com/records/architecture/chain-of-responsibility-pattern.md)
- [Ordered Fallthrough](https://banes-lab.com/records/lexicon/ordered-fallthrough.md)
- [Lazy Traversal](https://banes-lab.com/records/lexicon/lazy-traversal.md)
- [Dynamic Dispatch](https://banes-lab.com/records/architecture/dynamic-dispatch.md)
