Builder
Builder
Section titled “Builder”One-line pattern summary
Section titled “One-line pattern summary”A pattern that separates complex object creation into steps to improve readability and safety.
Typical Unity use cases
Section titled “Typical Unity use cases”- When creating configuration objects with many options.
- When the same process produces different results.
Parts (roles)
Section titled “Parts (roles)”- Builder
- Director (optional)
- Product
Unity example (C#)
Section titled “Unity example (C#)”The code below is a simplified Unity example based on the scenario described above.
public sealed class EnemyWaveConfig{ public int EnemyCount; public float SpawnIntervalSeconds; public string RewardId;}
public sealed class EnemyWaveBuilder{ private readonly EnemyWaveConfig waveConfig = new();
public EnemyWaveBuilder SetEnemyCount(int enemyCount) { waveConfig.EnemyCount = enemyCount; return this; }
public EnemyWaveBuilder SetSpawnInterval(float spawnIntervalSeconds) { waveConfig.SpawnIntervalSeconds = spawnIntervalSeconds; return this; }
public EnemyWaveBuilder SetReward(string rewardId) { waveConfig.RewardId = rewardId; return this; }
public EnemyWaveConfig Build() => waveConfig;}Advantages
Section titled “Advantages”- Object creation responsibilities are well organized, which makes dependency management easier.
- Creation policies can be changed flexibly by environment or situation.
Things to watch out for
Section titled “Things to watch out for”- Avoid introducing overly abstract creation layers for simple problems.
- As creation rules increase, keeping documentation and tests in sync becomes more important.
Interaction diagram
Section titled “Interaction diagram”This shows the flow where a complex object is assembled step by step and returned at the end.