Exemple #1
0
    def simulate(self, duckFactory):
        # type: (AbstractDuckFactory) -> None
        mallardDuck = duckFactory.createMallardDuck()
        redheadDuck = duckFactory.createRedheadDuck()
        duckCall = duckFactory.createDuckCall()
        rubberDuck = duckFactory.createRubberDuck()
        gooseDuck = GooseAdapter(Goose())

        flockOfDucks = Flock()

        flockOfDucks.add(mallardDuck)
        flockOfDucks.add(redheadDuck)
        flockOfDucks.add(rubberDuck)
        flockOfDucks.add(gooseDuck)

        flockOfMallards = Flock()

        mallardDuck1 = duckFactory.createMallardDuck()
        mallardDuck2 = duckFactory.createMallardDuck()
        mallardDuck3 = duckFactory.createMallardDuck()
        mallardDuck4 = duckFactory.createMallardDuck()

        flockOfMallards.add(mallardDuck1)
        flockOfMallards.add(mallardDuck2)
        flockOfMallards.add(mallardDuck3)
        flockOfMallards.add(mallardDuck4)

        flockOfDucks.add(flockOfMallards)

        # print "\nDuck simulator: Whole Flock Simulation"
        # self.__simulate(flockOfDucks)
        #
        # print "\nDuck simulator: Mallard Flock Simulation"
        # self.__simulate(flockOfMallards)

        print "\nDuck simulator: With Observer"
        quackologist = Quackologist()
        flockOfDucks.registerObserver(quackologist)

        self.__simulate(flockOfDucks)

        print "Number of quacks: " + str(QuackCounter.getQuacks())