# The lex records whose category is behavioral-patterns

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

## Entries

- [Direct Callback Coupling](https://banes-lab.com/records/lex/direct-callback-coupling.md): Wiring a source to notify specific recipients by direct call, coupling it to each one.
- [Direct Method Invocation](https://banes-lab.com/records/lex/direct-method-invocation.md): Invoking an operation by direct method call, so it cannot be queued, logged, or undone.
- [Duplicated Workflow](https://banes-lab.com/records/lex/duplicated-workflow.md): Repeating the same overall algorithm in many places, each copy re-implementing the shared steps.
- [Exposed Internal Representation](https://banes-lab.com/records/lex/exposed-internal-representation.md): Forcing clients to traverse a collection through its internal structure, coupling them to that structure.
- [External State Reach-In](https://banes-lab.com/records/lex/external-state-reach-in.md): Reading or writing an object's internal state from outside to snapshot it, breaking its encapsulation.
- [Flat State Explosion](https://banes-lab.com/records/lex/flat-state-explosion.md): Enumerating every combination of conditions as a separate flat state, so the state count explodes.
- [Large Conditional Logic](https://banes-lab.com/records/lex/large-conditional-logic.md): Selecting behavior with a large branching conditional instead of pluggable strategy objects.
- [Mesh Dependencies](https://banes-lab.com/records/lex/mesh-dependencies.md): Letting every object refer directly to every other, forming a dense mesh of point-to-point dependencies.
- [Monolithic Handler](https://banes-lab.com/records/lex/monolithic-handler.md): Handling every case in one large handler instead of a chain of focused, single-purpose handlers.
- [Type-Switch Dispatch](https://banes-lab.com/records/lex/type-switch-dispatch.md): Dispatching behavior with a switch on an object's type instead of double dispatch through a visitor.
- [Centralized Interaction Logic](https://banes-lab.com/records/lex/centralized-interaction-logic.md): The ability to concentrate how a set of objects interact within one mediating component.
- [Controlled Variation](https://banes-lab.com/records/lex/controlled-variation.md): The ability to let subclasses vary only the designated steps of a fixed algorithm.
- [Decoupled Notification](https://banes-lab.com/records/lex/decoupled-notification.md): The ability to notify interested parties of a change without the source knowing who they are.
- [Deferred Execution](https://banes-lab.com/records/lex/deferred-execution.md): The ability to capture a request as an object so it can be run later, queued, or logged.
- [Exhaustive State Reasoning](https://banes-lab.com/records/lex/exhaustive-state-reasoning.md): The ability to enumerate and reason about every state a system can occupy and every transition between them.
- [Framework Reuse](https://banes-lab.com/records/lex/framework-reuse.md): The ability to reuse a fixed algorithm skeleton across many concrete implementations.
- [Guarded Transitions](https://banes-lab.com/records/lex/guarded-transitions.md): The ability to permit a state transition only when a specified condition holds.
- [Hierarchical States](https://banes-lab.com/records/lex/hierarchical-states.md): The ability to nest states so shared behavior is defined once on an enclosing state.
- [Lazy Traversal](https://banes-lab.com/records/lex/lazy-traversal.md): The ability to produce a collection's elements one at a time on demand rather than all at once.
- [Null-Check Elimination](https://banes-lab.com/records/lex/null-check-elimination.md): The ability to remove scattered null checks by substituting a benign do-nothing object.
- [Operation Extension Without Element Change](https://banes-lab.com/records/lex/operation-extension-without-element-change.md): The ability to add new operations over a structure without modifying its element classes.
- [Ordered Fallthrough](https://banes-lab.com/records/lex/ordered-fallthrough.md): The ability to offer a request to handlers in sequence until one of them accepts it.
- [Parallel Regions](https://banes-lab.com/records/lex/parallel-regions.md): The ability to model concurrently-active, independent regions of state within one machine.
- [Pluggable Handling](https://banes-lab.com/records/lex/pluggable-handling.md): The ability to add or reorder request handlers without changing the ones already in the chain.
- [Request Queuing](https://banes-lab.com/records/lex/request-queuing.md): The ability to hold requests captured as objects in a queue for later execution.
- [Runtime Behavior Selection](https://banes-lab.com/records/lex/runtime-behavior-selection.md): The ability to choose among interchangeable algorithms at runtime.
- [Snapshot/Restore](https://banes-lab.com/records/lex/snapshot-restore.md): The ability to capture an object's state and later restore it to that captured point.
- [State-Local Behavior](https://banes-lab.com/records/lex/state-local-behavior.md): The ability to attach behavior to each state so an object acts according to its current state.
- [Structure-Agnostic Iteration](https://banes-lab.com/records/lex/structure-agnostic-iteration.md): The ability to traverse a collection without depending on how it is internally organized.
- [Fail-Safe Defaults](https://banes-lab.com/records/lex/fail-safe-defaults.md): Defaulting to safe, benign behavior when a value or handler is absent rather than failing or branching.
- [Explicit State Model](https://banes-lab.com/records/lex/explicit-state-model.md): The requirement that an object's states and their transitions be modeled explicitly.
- [Explicit State Set](https://banes-lab.com/records/lex/explicit-state-set.md): The requirement that the complete set of possible states be defined up front.
- [Interchangeable Algorithms](https://banes-lab.com/records/lex/interchangeable-algorithms.md): The requirement that competing algorithms share one interface so they can be swapped freely.
- [Shared Behavioral Interface](https://banes-lab.com/records/lex/shared-behavioral-interface.md): The requirement that the real object and its null stand-in implement one common interface.
- [Stable Algorithm Skeleton](https://banes-lab.com/records/lex/stable-algorithm-skeleton.md): The requirement that the overall algorithm's structure stay fixed while specific steps vary.
- [Stable Element Hierarchy](https://banes-lab.com/records/lex/stable-element-hierarchy.md): The requirement that the set of element types stay fixed so new operations can be added over them.
- [Subject/Subscriber Contract](https://banes-lab.com/records/lex/subject-subscriber-contract.md): The requirement of an agreed interface by which subjects notify and subscribers receive updates.
- [Uniform Handler Interface](https://banes-lab.com/records/lex/uniform-handler-interface.md): The requirement that every handler in a chain share one interface so requests pass along uniformly.
- [Uniform Traversal Interface](https://banes-lab.com/records/lex/uniform-traversal-interface.md): The requirement that collections expose one common interface for stepping through their elements.
- [Class Count](https://banes-lab.com/records/lex/class-count.md): The degree to which extracting each algorithm into its own class raises the total number of classes.
- [Class Proliferation](https://banes-lab.com/records/lex/class-proliferation.md): The degree to which modeling each state as its own class multiplies the number of classes.
- [Coordination Complexity](https://banes-lab.com/records/lex/coordination-complexity.md): The degree of complexity in how objects must coordinate, which motivates a mediator.
- [Element Stability](https://banes-lab.com/records/lex/element-stability.md): The degree to which adding new operations stays easy only while the set of element types stays fixed.
- [Inheritance Coupling](https://banes-lab.com/records/lex/inheritance-coupling.md): The degree to which basing a template method on subclassing binds subclasses tightly to the base class.
- [Mediator God Object](https://banes-lab.com/records/lex/mediator-god-object.md): The degree to which concentrating interaction logic in a mediator risks growing it into an overloaded object.
- [Memory Footprint](https://banes-lab.com/records/lex/memory-footprint.md): The degree of memory consumed by retaining state snapshots for later restoration.
- [Silent No-Op Risk](https://banes-lab.com/records/lex/silent-no-op-risk.md): The degree to which a do-nothing stand-in can hide an error.
- [State Explosion](https://banes-lab.com/records/lex/state-explosion.md): The degree to which the number of explicit states grows unmanageably as conditions multiply.
