public static House giveTenderToSohomotVai(string input)
        {
            HouseType      houseType      = new ConcreteBuilder();
            HouseDirector  houseDirector  = houseType.GetHouseTypes(input);
            BuilderCompany builderCompany = new BuilderCompany(houseDirector);

            builderCompany.constructHouse();
            House house = builderCompany.GetHouse();

            return(house);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Problem: If we have to initial some object that has many step or complex to initialize.
        /// Solved: Use Builder pattern to solve the problem by create the Product, Builder and Director.
        /// The Builder will handle how to create the object.
        /// The Director will handle to manage the builder for works.
        /// And in finally we will get the product via Builder get result method (GetHouse in this case).
        /// </summary>
        public override void Demo()
        {
            Console.WriteLine($"================Builder================{Environment.NewLine}");
            // in case we want to created wooden house
            var woodenHouseBuilder = new WoodenHouseBuilder();
            var houseDirector      = new HouseDirector(woodenHouseBuilder);

            houseDirector.CreateWoodenHouse();
            var woodenHouse = woodenHouseBuilder.GetHouse();

            woodenHouse.ListAllPart();

            // in case we want to create brick house
            var brickHouseBuilder = new BrickHouseBuilder();

            houseDirector = new HouseDirector(brickHouseBuilder);
            houseDirector.CreateBrickHouse();
            var brickHouse = brickHouseBuilder.GetHouse();

            brickHouse.ListAllPart();
            Console.WriteLine($"{Environment.NewLine}================Builder================");
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Builder");
            Console.WriteLine("House Construction Example");

            var houseDirector = new HouseDirector();

            var stoneHouseBuilder = new StoneHouseBuilder();

            houseDirector.SetBuilder(stoneHouseBuilder);

            Console.WriteLine("\n[Simple Stone House]");
            houseDirector.BuildSimpleHouse();
            var simpleStoneHouse = stoneHouseBuilder.Build();

            PrintResult(simpleStoneHouse);

            Console.WriteLine("\n[Nice Stone House]");
            houseDirector.BuildNiceHouse();
            var niceStoneHouse = stoneHouseBuilder.Build();

            PrintResult(niceStoneHouse);

            Console.WriteLine("\n[Simple Wood House]");
            var woodHouseBuilder = new WoodHouseBuilder();

            houseDirector.SetBuilder(woodHouseBuilder);

            houseDirector.BuildSimpleHouse();
            var simpleWoodHouse = woodHouseBuilder.Build();

            PrintResult(simpleWoodHouse);

            Console.WriteLine("\n[Nice Wood House]");
            houseDirector.BuildNiceHouse();
            var niceWoodHouse = woodHouseBuilder.Build();

            PrintResult(niceWoodHouse);
        }
Ejemplo n.º 4
0
 public BuilderCompany(HouseDirector houseDirector)
 {
     _houseDirector = houseDirector;
 }