static void Main(string[] args) { // The client code creates a builder object, passes it to the // director and then initiates the construction process. The end // result is retrieved from the builder object. var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product:"); director.BuildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.BuildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); // Remember, the Builder pattern can be used without a Director // class. Console.WriteLine("Custom product:"); builder.BuildPartA(); builder.BuildPartC(); Console.Write(builder.GetProduct().ListParts()); }
static void Main(string[] args) { Console.WriteLine("Fluent Builder design pattern example"); Console.WriteLine("Builder is a creational design pattern, which allows constructing complex objects step by step."); Console.WriteLine(); // the client code creates a builder object, passes it to the director and then initiates the construction process. // the end result is retrieved from the builder object. var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product:"); director.BuildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.BuildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); // remember, the builder pattern can be used without a director class. Console.WriteLine("Custom product:"); builder .BuildPartA() .BuildPartC(); Console.Write(builder.GetProduct().ListParts()); }
static void Main(string[] args) { // Клиентский код создаёт объект-строитель, передаёт его директору, // а затем инициирует процесс построения. Конечный результат // извлекается из объекта-строителя. var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product:"); director.buildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.buildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); // Помните, что паттерн Строитель можно использовать без класса // Директор. Console.WriteLine("Custom product:"); builder.BuildPartA(); builder.BuildPartC(); Console.Write(builder.GetProduct().ListParts()); }
static void Main(string[] args) { /*El código del cliente crea un objeto de construcción, se lo pasa al director y * luego inicia el proceso de construcción. * El resultado final se recupera del objeto constructor.*/ Console.WriteLine("----------Ejercicio Conceptual----------"); var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product:"); director.buildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.buildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); /* Recuerde, el patrón Builder se puede utilizar sin una clase de Director. */ Console.WriteLine("Custom product:"); builder.BuildPartA(); builder.BuildPartC(); Console.Write(builder.GetProduct().ListParts()); Console.WriteLine(Environment.NewLine); Console.WriteLine("---------- Ejercicio de prueba ----------"); Console.WriteLine("Creando Audi......."); var concesionario = new Concesionario(); var audiBuilder = new ConcreteBuilderAudi(); concesionario.CocheBuilder = audiBuilder; concesionario.construirCoche(); Console.WriteLine(audiBuilder.GetCoche()); Console.WriteLine(Environment.NewLine); Console.WriteLine("Creando Hyundai......."); var hyundaiBuilder = new ConcreteBuilderHyundai(); concesionario.CocheBuilder = hyundaiBuilder; concesionario.construirCoche(); Console.WriteLine(hyundaiBuilder.GetCoche()); Console.WriteLine(Environment.NewLine); Console.WriteLine("Sin usar director y usando parametros...."); audiBuilder.construirMotor(5000, 300); audiBuilder.DarNombre("Audi Q7"); audiBuilder.construirCarroceria("4x4", 7); Console.WriteLine(audiBuilder.GetCoche()); Console.ReadKey(); }
static void Main(string[] args) { var builder = new ConcreteBuilder(); var director = new Director(); director.Builder = builder; director.BuildMinimalViableProduct(); Console.WriteLine($"{builder.GetProduct().ListParts()}"); director.BuildFullFeaturedProduct(); Console.WriteLine($"{builder.GetProduct().ListParts()}"); builder.BuildPartA(); builder.BuildPartC(); Console.WriteLine($"{builder.GetProduct().ListParts()}"); ; }
static void Main(string[] args) { var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product:"); director.buildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.buildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Custom product:"); builder.BuildPartA(); builder.BuildPartC(); Console.Write(builder.GetProduct().ListParts()); }
static void Main(string[] args) { // The client code creates a builder object, passes it to the // director and then initiates the construction process. The end // result is retrieved from the builder object. var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product (variation #1):"); director.BuildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product (variation #2):"); director.BuildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.Read(); }
static void Main(string[] args) { Director director = new Director(); IBuilder builder = new ConcreteBuilder(); director.Construct(builder); Product product = builder.GetProduct(); Console.WriteLine($"{product.Part1} / {product.Part2} / {product.Part3}"); Console.ReadKey(); }
static void Main(string[] args) { var director = new Director(); var builder = new ConcreteBuilder(); director.Builder = builder; Console.WriteLine("Standard basic product:"); director.buildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.buildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); // Помните, что паттерн Строитель можно использовать без класса // Директор. Console.WriteLine("Custom product:"); builder.BuildPartA(); builder.BuildPartC(); Console.Write(builder.GetProduct().ListParts()); }
static void Main(string[] args) { var builder = new ConcreteBuilder(); builder.BuildPartB(); builder.BuildPartC(); var producedProduct = builder.GetProduct(); Console.Write(producedProduct.ListPartsNames()); Console.ReadLine(); }
static void Main(string[] args) { //Console.WriteLine("Hello World!"); var builder = new ConcreteBuilder(); var director = new HouseOrganizer(builder); //director.Builder = builder; Console.WriteLine("Standard basic product:"); director.buildMinimalViableProduct(); Console.WriteLine(builder.GetProduct().ListParts()); Console.WriteLine("Standard full featured product:"); director.buildFullFeaturedProduct(); Console.WriteLine(builder.GetProduct().ListParts()); // Remember, the Builder pattern can be used without a Director // class. Console.WriteLine("Custom product:"); builder.BuildFoundations(); builder.BuildMainHouse(); Console.Write(builder.GetProduct().ListParts()); }