Intro

Creational patterns abstract the instantiation process, making a system independent of how its objects are created, composed, and represented. They matter because scattered new calls couple code to concrete types — a Creational pattern moves that decision to one place, making the system easy to extend without changing client code. Reach for them when object construction logic becomes complex, needs to vary by context, or creates unwanted coupling to a specific class: Factory Method, Abstract Factory, Builder, Prototype, and Singleton.

Patterns at a Glance

These are a catalog, not competing choices — every creational pattern decouples how an object is built from the code that uses it, but each targets a different construction problem. Use this as an intent cheat-sheet, not a ranking.

PatternIntentReach for it when
Factory MethodDefine an interface for creating an object, but let subclasses decide which concrete class to instantiate.You create one product type whose concrete class varies by context, and want new variants added as subclasses instead of edits to existing code.
Abstract FactoryProvide an interface for creating families of related objects without naming their concrete classes.Products must stay mutually compatible (a whole Stripe / PayPal provider family swapped together) and you expect new families over time.
BuilderSeparate construction of a complex object from its representation, assembling it step by step.Construction needs cross-field validation, computed fields, or a director-driven sequence — beyond what required / init object initializers cover.
PrototypeCreate new objects by copying an existing instance rather than constructing from scratch.Construction is expensive, or you need many near-identical variants cloned from a template (idiomatically record with { }).
SingletonEnsure a class has only one instance and give it a single global access point.Exactly one shared instance should serve the whole application — in modern .NET, prefer AddSingleton<T>() over the classical static form.

5 items under this folder.