{"id":"builder-visitor-dual-structure-traversal-patterns","text":"Builder and Visitor share notable structural parallels as traversal-oriented patterns: both accumulate state across a sequence of steps, both can operate without requiring a common parent class for the things they process (Builder's products need not share a hierarchy; Visitor can traverse heterogeneous elements), and both can serve analytical purposes beyond their primary construction or visitation roles — Builder can analyze structure without creating a product, while Visitor can compute collective properties across a traversal. These similarities suggest a duality in how each pattern decouples a step-wise protocol from what is done at each step.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["builder-maximally-decoupled-from-product","visitor-accumulates-across-structures"],"outlist":[],"label":"Builder (construct-time traversal) and Visitor (use-time traversal) are structural duals sharing accumulation, protocol decoupling, and parent-independence"}],"dependents":["builder-visitor-bidirectional-functional-duality","builder-visitor-duality-bounded-by-encapsulation"],"metadata":{"source_type":"derived","review_result":"pass","repair_action":"softened"},"created_at":"2026-06-18T02:19:13+00:00","updated_at":"2026-06-18T06:15:08+00:00","reviewed_at":"2026-06-18T06:15:08+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"builder-visitor-dual-structure-traversal-patterns","truth_value":"IN","reason":"SL justification valid","antecedents":["builder-maximally-decoupled-from-product","visitor-accumulates-across-structures"],"label":"Builder (construct-time traversal) and Visitor (use-time traversal) are structural duals sharing accumulation, protocol decoupling, and parent-independence"},{"node":"builder-maximally-decoupled-from-product","truth_value":"IN","reason":"SL justification valid","antecedents":["builder-products-no-common-parent","builder-can-analyze-without-creating","builder-methods-empty-by-default"],"label":"Three properties uniquely distinguish Builder's decoupling from other creational patterns"},{"node":"builder-products-no-common-parent","truth_value":"IN","reason":"premise"},{"node":"builder-can-analyze-without-creating","truth_value":"IN","reason":"premise"},{"node":"builder-methods-empty-by-default","truth_value":"IN","reason":"premise"},{"node":"visitor-accumulates-across-structures","truth_value":"IN","reason":"SL justification valid","antecedents":["visitor-structure-independent-operations","gof-visitor-accumulates-state"],"label":"Structure independence plus state accumulation enables cross-element analysis over heterogeneous collections"},{"node":"visitor-structure-independent-operations","truth_value":"IN","reason":"SL justification valid","antecedents":["visitor-traverses-any-object-structure","gof-visitor-no-common-parent-required"],"label":"Two independently stated Visitor generality properties (any structure, no common parent) establish Visitor as universally applicable for operations"},{"node":"visitor-traverses-any-object-structure","truth_value":"IN","reason":"premise"},{"node":"gof-visitor-no-common-parent-required","truth_value":"IN","reason":"premise"},{"node":"gof-visitor-accumulates-state","truth_value":"IN","reason":"premise"}]}}