archetype architecture-and-building part-wholepathmatching coordinatetransform pipeline specific

The Builder Pattern

archetype

Source: Architecture and BuildingObject-Oriented Design

Categories: software-engineering

From: Design Patterns: Elements of Reusable Object-Oriented Software

Transfers

Call something a “builder” and you import the construction site into object creation. A builder works from a plan, assembles components in a deliberate sequence, and delivers a finished structure only when the last piece is in place. The GoF Builder pattern maps this onto software: a builder object accumulates configuration through a series of method calls and produces a complex object only when you call build().

Key structural parallels:

Limits

Expressions

Origin Story

The Builder pattern was codified in Design Patterns (1994) by Gamma, Helm, Johnson, and Vlissides. The original GoF formulation emphasized the director/builder separation: a director object drives the construction process while interchangeable builder implementations produce different representations. The pattern’s name explicitly invokes the construction trade — someone who builds things according to plans.

In practice, the pattern evolved away from its GoF origins. Joshua Bloch popularized the “fluent builder” variant in Effective Java (2001), where the builder is used not for multiple representations but for readable construction of objects with many optional parameters. This variant dropped the director entirely and made the builder a kind of accumulating order form. The construction metaphor thinned accordingly: modern developers who say “builder pattern” almost always mean Bloch’s variant, not the GoF’s architectural one. The name remains, but the blueprints and foremen have left the site.

References

Related Entries

Structural Neighbors

Entries from different domains that share structural shape. Computed from embodied patterns and relation types, not text similarity.

Structural Tags

Patterns: part-wholepathmatching

Relations: coordinatetransform

Structure: pipeline Level: specific

Contributors: agent:metaphorex-miner, fshot