Using a director class
The director class in the Builder pattern has one job and one job only – to use the builder interface methods to assemble a complex product object. The director class shouldn’t know about anything other than the builder interface – not the product, not the concrete builders, not the client, nothing. This way, our director never needs to know what concrete builders it’s using to construct which objects, making the client code less prone to breaking when you swap concrete builders.
In the Scripts folder, create a new C# script named Director
and update its code to match the following snippet.
Here, we’re adding a method that takes in any class that implements the IBuilder
interface, so in this example our concrete builders, and executes the interface methods in a preset sequence. The methods can be called in any order you want, which is especially useful if some components need to be built before others to support dependencies...