コード例 #1
0
        private void MakeAndDisplaySandwich(SandwichDirector director)
        {
            director.MakeSandwich();
            var sandwich = director.GetSandwhich();

            sandwich.Display();
        }
コード例 #2
0
        public override void Execute()
        {
            var cheapSandwichBuilder   = new CheapSandwichBuilder();
            var premiumSandwichBuilder = new PremiumSandwichBuilder();

            var director = new SandwichDirector(cheapSandwichBuilder);

            MakeAndDisplaySandwich(director);

            // This is not common to see, but it is possible to change builder if necessary.
            director.ChangeBuilder(premiumSandwichBuilder);

            MakeAndDisplaySandwich(director);
        }
コード例 #3
0
        public void TestVersion01()
        {
            SandwichDirector sandwichDirector = new SandwichDirector(new MySandwichBuilder());

            sandwichDirector.BuildSandwich();
            Sandwich sandwich1 = sandwichDirector.Sandwhich;

            sandwich1.Display();

            SandwichDirector sandwichDirector2 = new SandwichDirector(new ClubSandwichBuilder());

            sandwichDirector2.BuildSandwich();
            Sandwich sandwich2 = sandwichDirector2.Sandwhich;

            sandwich2.Display();
        }
コード例 #4
0
ファイル: BuilderShould.cs プロジェクト: Xeinaemm/Patterns
        public void CreateStandardSandwich()
        {
            var sut = new SandwichDirector(new StandardSandwichBuilder());

            sut.BuildSandwich();
            var actual = sut.GetSandwich();

            var expected = new SandwichResemblance
            {
                HasMayo    = false,
                HasMustard = true,
                Vegetables = new List <string> {
                    "Tomato", "Onion"
                },
                CheeseType = CheeseType.Cheddar,
                MeatType   = MeatType.Turkey,
                BreadType  = BreadType.White,
                IsToasted  = true
            };

            Assert.True(expected.Equals(actual));
        }