go-patterns
esc

Behavioral patterns

Patterns for organizing control flow, workflows, and collaboration with explicit errors, interfaces, and small units of behavior.

Chain of Responsibility

unread

Build validation and request-processing pipelines with small handlers composed through interfaces.

Medium

Command

unread

Encapsulate operations for queuing, audit history, and undo/redo while keeping Go error handling explicit.

Medium

Interpreter

unread

Define a small grammar for recurring business rules and evaluate sentences of that grammar with an expression tree.

High

Iterator

unread

Traverse a collection without exposing its internal representation, keeping traversal state separate from the aggregate.

Low

Mediator

unread

Centralize communication between collaborating objects so they depend on a coordinator instead of referencing each other directly.

Medium

Memento

unread

Capture and restore object state without exposing internal details so undo and rollback remain explicit and controlled.

Medium

Observer

unread

Notify dependent subscribers when state changes so event-driven reactions stay decoupled from the publisher.

Low

State

unread

Change an object’s behavior when its internal state changes by delegating transitions and rules to state-specific types.

Medium

Strategy

unread

Encapsulate interchangeable algorithms behind one interface so callers can swap behavior without branching on concrete rules.

Low

Template Method

unread

Define the skeleton of an algorithm once while letting concrete steps vary through narrow hook methods.

Medium

Visitor

unread

Add operations across a stable object structure without changing each node type whenever a new operation is introduced.

High