예제 #1
0
        static void Main(string[] args)
        {
            SimpleHouseDirector simpleHouseDirector = new SimpleHouseDirector();

            Console.WriteLine("Simple House:");
            simpleHouseDirector.BuildSimpleHouse();
            Console.Write(simpleHouseDirector.Builder.Product.ListParts());

            simpleHouseDirector.Builder.Reset();

            Console.WriteLine("Fancy House:");
            simpleHouseDirector.BuildFancyHouse();
            Console.Write(simpleHouseDirector.Builder.Product.ListParts());

            simpleHouseDirector.Builder.Reset();

            var builder = new SimpleHouseBuilder();

            Console.WriteLine("Simple House:");
            builder.BuildFloor();
            builder.BuildWall();
            builder.BuildWall();
            builder.BuildWall();
            builder.BuildWall();
            builder.BuildDoor();
            builder.BuildWindow();
            builder.BuildWindow();
            builder.BuildRoof();
            Console.Write(builder.Product.ListParts());

            //Wzorzec projektowy builder sprawdza się przy tworzeniu obiektów z dużą ilościa konfigurowalnych opcji

            //Przy powyższym przykładzie możemy stworyć dom który będzie miał 4 lub 20 ścian, okien itd

            //Można używać go z lub bez klasy director
        }
예제 #2
0
 public SimpleHouseDirector()
 {
     Builder = new SimpleHouseBuilder();
 }