コード例 #1
0
ファイル: Program.cs プロジェクト: yung-chu/OoHeadFirst
        private void simulate(AbstractDuckFactory duckFactory)
        {
            Quackable md  = duckFactory.createMallardDuck();
            Quackable rd  = duckFactory.createRedheadDuck();
            Quackable dc  = duckFactory.createDuckCall();
            Quackable rud = duckFactory.createRubberDuck();
            Quackable gd  = new GooseAdapter(new Goose());

            Console.WriteLine("\nDuck Simulator\n\n");

            Flock flockOfDucks = new Flock();

            flockOfDucks.add(md);
            flockOfDucks.add(rd);
            flockOfDucks.add(dc);

            Quackologist qolo = new Quackologist();

            flockOfDucks.registerObserver(qolo);
            gd.registerObserver(qolo);

            simulate(flockOfDucks);
            simulate(rud);
            simulate(gd);

            Console.WriteLine("\nDuck quacked " +
                              QuackCounter.getQuacks());
            Console.ReadLine();
        }
コード例 #2
0
    public void simulate(AbstractDuckFactory duckFactory)
    {
        Quackable mallardDuck  = duckFactory.createMallardDuck();
        Quackable redheadDuck  = duckFactory.createRedheadDuck();
        Quackable duckCall     = duckFactory.createDuckCall();
        Quackable rubberDuck   = duckFactory.createRubberDuck();
        Goose     goose        = new Goose();
        Quackable gooseAdapter = new GooseAdapter(goose);

        Flock flockOfDucks = new Flock();

        Quackologist quackologist = new Quackologist();

        flockOfDucks.add(mallardDuck);
        flockOfDucks.add(redheadDuck);
        flockOfDucks.add(duckCall);
        flockOfDucks.add(rubberDuck);

        //foarte important sa fie dupa ce am adaugat lez ducks ,
        //inregistrarea observerului se face cu interator pt toate lez ducks existente
        flockOfDucks.registerObserver(quackologist);

        Console.WriteLine("Duck Simulator");

        simulate(flockOfDucks);

        Console.WriteLine(" The ducks quacked " + QuackCounter.getQaucks() + " times");
    }
コード例 #3
0
        public void registerObserver(Observer observer)
        {
            var enumerator = quackers.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Quackable duck = enumerator.Current;
                duck.registerObserver(observer);
            }
        }
コード例 #4
0
        public void quack()
        {
            var enumerator = quackers.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Quackable quacker = enumerator.Current;
                quacker.quack();
            }
        }
コード例 #5
0
        public void quack()
        {
            IEnumerator iterator = quackers.GetEnumerator();

            while (iterator.MoveNext())
            {
                Quackable quacker = (Quackable)iterator.Current;
                quacker.quack();
            }
        }
コード例 #6
0
    public void quack()
    {
        IEnumerator <Quackable> enumerable = quackers.GetEnumerator();

        while (enumerable.MoveNext())
        {
            Quackable quacker = enumerable.Current;
            quacker.quack();
        }
    }
コード例 #7
0
    public void registerObserver(Observer observer)
    {
        //foarte important as parcurgem si sa face inregistrare la fiecare in parte
        IEnumerator <Quackable> enumerable = quackers.GetEnumerator();

        while (enumerable.MoveNext())
        {
            Quackable quacker = enumerable.Current;
            quacker.registerObserver(observer);
        }
    }
コード例 #8
0
        void Simulate(AbstractDuckFactory duckFactory)
        {
            Quackable mallardDuck  = duckFactory.CreateMallardDuck();
            Quackable redHeadDuck  = duckFactory.CreateRedHeadDuck();
            Quackable duckCall     = duckFactory.CreateDuckCall();
            Quackable rubberDuck   = duckFactory.CreateRubberDuck();
            Quackable gooseAdapter = duckFactory.CreateGeese();// new GeeseAdapter(new Geese());

            Flock duckFlock = new Flock();

            duckFlock.Add(mallardDuck);
            duckFlock.Add(redHeadDuck);
            duckFlock.Add(duckCall);
            duckFlock.Add(rubberDuck);
            duckFlock.Add(gooseAdapter);


            Flock mallardFlock = new Flock();

            mallardFlock.Add(duckFactory.CreateMallardDuck());
            mallardFlock.Add(duckFactory.CreateMallardDuck());
            mallardFlock.Add(duckFactory.CreateMallardDuck());
            mallardFlock.Add(duckFactory.CreateMallardDuck());

            //again add the mallard to duck flock
            duckFlock.Add(mallardFlock);

            //Quackalogist qmallard = new Quackalogist();
            //MallardDuck malldck = new MallardDuck();
            //malldck.RegisterObservable(qmallard);
            //Simulate(malldck);


            //Quackalogist quackalogist = new Quackalogist();
            //Quackable mallardDuckDec = new QuackCounter(new MallardDuck());
            //mallardDuckDec.RegisterObservable(quackalogist);
            //Simulate(mallardDuckDec);

            Quackalogist quackalogistFlock = new Quackalogist();

            duckFlock.RegisterObservable(quackalogistFlock);


            Console.WriteLine("\nPrinting duckflock+ mallardflock");
            Simulate(duckFlock);


            Console.WriteLine("\nPrinting mallardflock");
            //mallardFlock.RegisterObservable(quackalogistFlock);
            Simulate(mallardFlock);

            Console.WriteLine(QuackCounter.GetQuackCounter());
        }
コード例 #9
0
        static void Simulator(AbstractDuckFactory duckFactory)
        {
            Quackable redheadDuck  = duckFactory.CreateReadheadDuck();
            Quackable rubberDuck   = duckFactory.CreateRubberDuck();
            Quackable gooseDuck    = new GooseAdapter(new Goose());
            Flock     flockOfDucks = new Flock();

            flockOfDucks.Add(redheadDuck);
            flockOfDucks.Add(rubberDuck);
            flockOfDucks.Add(gooseDuck);

            QuackObserver observer = new QuackObserver();

            flockOfDucks.RegisterObserver(observer);

            Console.WriteLine("模拟器");
            Simulator(flockOfDucks);
            Console.WriteLine("鸭子叫声:" + QuackCounter.GetQuacks());
        }
コード例 #10
0
        public void simulate(AbstractDuckFactory duckFactory)
        {
            Quackable redheadDuck = duckFactory.createRedheadDuck();
            Quackable duckCall    = duckFactory.createDuckCall();
            Quackable rubberDuck  = duckFactory.createRubberDuck();
            Quackable gooseDuck   = new GooseAdapter(new Goose());

            Flock flockOfDucks = new Flock();

            flockOfDucks.add(redheadDuck);
            flockOfDucks.add(duckCall);
            flockOfDucks.add(rubberDuck);
            flockOfDucks.add(gooseDuck);

            Flock flockOfMallards = new Flock();

            Quackable mallardOne   = duckFactory.createMallardDuck();
            Quackable mallardTwo   = duckFactory.createMallardDuck();
            Quackable mallardThree = duckFactory.createMallardDuck();
            Quackable mallardFour  = duckFactory.createMallardDuck();

            flockOfMallards.add(mallardOne);
            flockOfMallards.add(mallardTwo);
            flockOfMallards.add(mallardThree);
            flockOfMallards.add(mallardFour);

            flockOfDucks.add(flockOfMallards);

            Console.WriteLine("\nDuck Simulator: With Observer");

            Quackologist quackologist = new Quackologist();

            flockOfDucks.registerObserver(quackologist);

            simulate(flockOfDucks);

            Console.WriteLine("The ducks quacked " + QuackCounter.getQuacks() + " times");
        }
コード例 #11
0
        public void simulate(AbstractDuckFactory factory)
        {
            Quackable redhead = factory.createRedheadDuck();
            Quackable call    = factory.createDuckCall();
            Quackable rubber  = factory.createRubberDuck();
            Quackable goose   = new GooseAdapter(new Goose());

            Console.WriteLine("Duck Simulator: With Composite - Flocks");

            Flock flockOfDucks = new Flock();

            flockOfDucks.add(redhead);
            flockOfDucks.add(call);
            flockOfDucks.add(rubber);
            flockOfDucks.add(goose);

            Flock flockOfMallards = new Flock();

            Quackable mallard1 = factory.createMallardDuck();
            Quackable mallard2 = factory.createMallardDuck();
            Quackable mallard3 = factory.createMallardDuck();
            Quackable mallard4 = factory.createMallardDuck();

            flockOfMallards.add(mallard1);
            flockOfMallards.add(mallard2);
            flockOfMallards.add(mallard3);
            flockOfMallards.add(mallard4);

            flockOfDucks.add(flockOfMallards);

            Console.WriteLine("Duck Simulator: Whole Flock Simulation");
            simulate(flockOfDucks);
            Console.WriteLine("Duck Simulator: Mallard Flock Simulation");
            simulate(flockOfMallards);

            Console.WriteLine("The ducks quacked " + QuackCounter.getQuacks() + " times");
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: yung-chu/OoHeadFirst
 private void simulate(Quackable q)
 {
     q.quack();
 }
コード例 #13
0
ファイル: Program.cs プロジェクト: krishkhan/DesignPatterns
 void Simulate(Quackable duck)
 {
     duck.Quack();
 }
コード例 #14
0
 private void simulate(Quackable duck)
 {
     duck.quack();
 }
コード例 #15
0
 public void add(Quackable quacker)
 {
     quackers.Add(quacker);
 }
コード例 #16
0
ファイル: QuackCounter.cs プロジェクト: yung-chu/OoHeadFirst
 public QuackCounter(Quackable duck)
 {
     m_duck = duck;
 }
コード例 #17
0
 void Simulate(Quackable duck)
 {
     duck.Quack();
 }
コード例 #18
0
 static void Simulator(Quackable duck)
 {
     duck.Quack();
 }
コード例 #19
0
 public QuackCounter(Quackable duck)
 {
     this.duckObservable = duck;
     //observable = new Observable(this.duckObservable);
 }
コード例 #20
0
 public void add(Quackable quacker)     //不透明的方法
 {
     m_quackers.Add(quacker);
 }
コード例 #21
0
 public void Add(Quackable duck)
 {
     ducks.Add(duck);
 }
コード例 #22
0
 public QuackCounter(Quackable duck)
 {
     this.duck  = duck;
     observable = new Observable(duck);
 }
コード例 #23
0
 public QuackCounter(Quackable duck)
 {
     this.duck = duck;
 }
コード例 #24
0
ファイル: Flock.cs プロジェクト: XSpringSun/DesignPatternDemo
 public void Add(Quackable quackable)
 {
     quackables.Add(quackable);
 }