コード例 #1
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());
        }