コード例 #1
0
        static void Main(string[] args)
        {
            DuckSimulator       duckSimulator = new DuckSimulator();
            AbstractDuckFactory duckFactory   = new DuckCountingFactory();

            duckSimulator.simulate(duckFactory);
        }
コード例 #2
0
        public void VariableDuckQuackTest()
        {
            var duckSimulator                 = new DuckSimulator();
            AbstractDuckFactory  factory      = new CountingDuckFactory();
            AbstractGooseFactory gooseFactory = new GooseFactory();

            duckSimulator.Simulate(factory, gooseFactory);
        }
コード例 #3
0
        public void Compound_Strategy_Behavior()
        {
            DuckSimulator duckSim = new DuckSimulator();
            IQuackable    duck1   = new MallardDuck();
            IQuackable    duck2   = new DuckCall();

            duckSim.Simulate(duck1);
            duckSim.Simulate(duck2);
        }
コード例 #4
0
        public void Compound_Adapter_Behavior()
        {
            DuckSimulator duckSim      = new DuckSimulator();
            IQuackable    duck1        = new RubberDuck();
            Goose         goose        = new Goose();
            IQuackable    gooseAdapter = new GooseAdapter(goose);

            duckSim.Simulate(duck1);
            duckSim.Simulate(gooseAdapter);
        }
コード例 #5
0
        public void Compound_Decorator_Behavior()
        {
            DuckSimulator duckSim      = new DuckSimulator();
            IQuackable    duck1        = new QuackCounter(new RubberDuck());
            Goose         goose        = new Goose();
            IQuackable    gooseAdapter = new QuackCounter(new GooseAdapter(goose));

            duckSim.Simulate(duck1);
            duckSim.Simulate(gooseAdapter);

            Assert.AreEqual(2, QuackCounter.GetQuackCount());
        }
コード例 #6
0
        public static void Main(string[] args)
        {
            Program p = new Program();

            p.Run();

            DuckSimulator duckSimulator = new DuckSimulator();

            duckSimulator.Execute();

            p.Exit();
        }
コード例 #7
0
        public void Compound_Observer()
        {
            DuckSimulator sim         = new DuckSimulator();
            Flock         flockDucks  = new Flock();
            IDuckFactory  duckFactory = new DuckCounterFactory();

            flockDucks.Add(duckFactory.CreateMallardDuck());
            flockDucks.Add(duckFactory.CreateRubberDuck());
            flockDucks.Add(duckFactory.CreateRedheadDuck());
            flockDucks.Add(duckFactory.CreateDuckCall());
            flockDucks.Add(new GooseAdapter(new Goose()));

            flockDucks.RegisterObservers(new QuackologistObserver());

            sim.Simulate(flockDucks);
            Assert.AreEqual(4, QuackCounter.GetQuackCount());
        }
コード例 #8
0
        public void Compound_Composite()
        {
            DuckSimulator sim = new DuckSimulator();

            Flock        flockDucks  = new Flock();
            IDuckFactory duckFactory = new DuckFactory();

            flockDucks.Add(duckFactory.CreateMallardDuck());
            flockDucks.Add(duckFactory.CreateMallardDuck());
            flockDucks.Add(duckFactory.CreateMallardDuck());
            flockDucks.Add(duckFactory.CreateMallardDuck());
            Flock flockRubberDucks = new Flock();

            flockRubberDucks.Add(duckFactory.CreateRubberDuck());
            flockRubberDucks.Add(duckFactory.CreateRubberDuck());
            flockRubberDucks.Add(duckFactory.CreateRubberDuck());
            flockDucks.Add(flockRubberDucks);

            sim.Simulate(flockDucks);
        }
コード例 #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("<< HEAD FIRST DESIGN PATTERNS >>");
            Console.WriteLine();

            Console.WriteLine("////////// STRATEGY PATTERN //////////");
            Console.WriteLine();

            MiniDuckSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// OBSERVER PATTERN //////////");
            Console.WriteLine();

            WheatherStationSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// DECORATOR PATTERN //////////");
            Console.WriteLine();

            StarbuzzCoffeeSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// FACTORY METHOD PATTERN //////////");
            Console.WriteLine();

            PizzaTestDriveSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// ABSTRACT FACTORY PATTERN //////////");
            Console.WriteLine();

            PizzaUsingAbstractFactorySimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// SINGLETON PATTERN //////////");
            Console.WriteLine();

            ChocolateBoilerControllerSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// COMMAND PATTERN //////////");
            Console.WriteLine();

            RemoteControlSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// ADAPTER PATTERN //////////");
            Console.WriteLine();

            TurkeyAdapterSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// FACADE PATTERN //////////");
            Console.WriteLine();

            HomeTheaterSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// TEMPLATE METHOD PATTERN //////////");
            Console.WriteLine();

            CaffeineBeverageMakerSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// ITERATOR PATTERN //////////");
            Console.WriteLine();

            MenuSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// COMPOSITE PATTERN //////////");
            Console.WriteLine();

            MenuTestDriveSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// STATE PATTERN //////////");
            Console.WriteLine();

            GumballMachineSimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// PROXY PATTERN (VIRTUAL) //////////");
            Console.WriteLine();

            ImageProxySimulator.Start();

            Console.WriteLine();
            Console.WriteLine("////////// COMPOUND PATTERNS (DUCKREUNION) //////////");
            Console.WriteLine();

            DuckSimulator.Start();

            Console.ReadLine();
        }
コード例 #10
0
        public static void Start()
        {
            var simulator = new DuckSimulator();

            simulator.Simulate(new CountingDuckFactory());
        }
コード例 #11
0
 private static void CompoundPattern()
 {
     DuckSimulator duckSimulator = new DuckSimulator();
 }