На главную Содержание
С помощью этого шаблона можно абстрагировать процесс создания сложных
объектов путем выделения и обобщения классов, создающих отдельные части
сложного объекта.
E. Gamma, R. Helm, R. Johnson, J. Vlissides определяют назначение
шаблона Builder так: шаблон Builder "отделяет конструирование сложных
объектов от его представления так, чтобы один конструирующий процесс мог
создавать различные представления".
class Director { public void Construct(AbstractBuilder abstractBuilder) { abstractBuilder.BuildPartA(); abstractBuilder.BuildPartC(); }
}
abstract class AbstractBuilder { abstract public void BuildPartA(); abstract public void BuildPartB(); abstract public void BuildPartC(); }
class ConcreteBuilder : AbstractBuilder { override public void BuildPartA() { Console.WriteLine("ConcreteBuilder.BuildPartA called"); }
override public void BuildPartB() { Console.WriteLine("ConcreteBuilder.BuildPartB called"); }
override public void BuildPartC() { Console.WriteLine("ConcreteBuilder.BuildPartC called"); } }
public class Client { public static int Main(string[] args) { ConcreteBuilder concreteBuilder = new ConcreteBuilder(); Director director = new Director();