Behavioral patterns
Patterns for organizing control flow, workflows, and collaboration with explicit errors, interfaces, and small units of behavior.
Chain of Responsibility
unreadBuild validation and request-processing pipelines with small handlers composed through interfaces.
Command
unreadEncapsulate operations for queuing, audit history, and undo/redo while keeping Go error handling explicit.
Interpreter
unreadDefine a small grammar for recurring business rules and evaluate sentences of that grammar with an expression tree.
Iterator
unreadTraverse a collection without exposing its internal representation, keeping traversal state separate from the aggregate.
Mediator
unreadCentralize communication between collaborating objects so they depend on a coordinator instead of referencing each other directly.
Memento
unreadCapture and restore object state without exposing internal details so undo and rollback remain explicit and controlled.
Observer
unreadNotify dependent subscribers when state changes so event-driven reactions stay decoupled from the publisher.
State
unreadChange an object’s behavior when its internal state changes by delegating transitions and rules to state-specific types.
Strategy
unreadEncapsulate interchangeable algorithms behind one interface so callers can swap behavior without branching on concrete rules.
Template Method
unreadDefine the skeleton of an algorithm once while letting concrete steps vary through narrow hook methods.
Visitor
unreadAdd operations across a stable object structure without changing each node type whenever a new operation is introduced.