Concept Flow - Builder pattern with generics
Start Builder
Set Property 1
Set Property 2
Set Property N
Call build()
Return Built Object
The builder starts empty, sets properties one by one, then builds the final object.
class Builder<T> { private obj: Partial<T> = {}; set<K extends keyof T>(key: K, value: T[K]): this { this.obj[key] = value; return this; } build(): T { return this.obj as T; } }
| Step | Action | Key | Value | Object State | Return |
|---|---|---|---|---|---|
| 1 | Create Builder | - | - | {} | Builder instance |
| 2 | Set property | name | "Alice" | {"name": "Alice"} | Builder instance |
| 3 | Set property | age | 30 | {"name": "Alice", "age": 30} | Builder instance |
| 4 | Build object | - | - | {"name": "Alice", "age": 30} | {"name": "Alice", "age": 30} |
| Variable | Start | After 1 | After 2 | Final |
|---|---|---|---|---|
| obj | {} | {"name": "Alice"} | {"name": "Alice", "age": 30} | {"name": "Alice", "age": 30} |
Builder pattern with generics: - Use a generic class Builder<T> with Partial<T> to hold properties. - set<K extends keyof T>(key, value) sets properties and returns 'this' for chaining. - build() returns the final object as type T. - Allows step-by-step object creation with type safety.