设计模式 - 帮我看看下面的代码算是python策略模式的实现吗
巴扎黑
巴扎黑 2017-04-17 17:14:58
0
1
312

最近在看head first设计模式,第一章时策略模式,但我对java代码一窍不通,根据文字描述用python实现了一下,不知道是否正确,大家帮我看看,谢谢

#!/usr/bin/env python
# encoding: utf-8

class FlyBehavior(object):

    def fly(self):
        pass


class QuackBehavior(object):

    def quack(self):
        pass

class FlyWithWings(FlyBehavior):
    def fly(self):
        print("can fly")

class FlyNoWay(FlyBehavior):
    def fly(self):
        print("can't fly")

class Quack(QuackBehavior):
    def quack(self):
        print("quacccccck")

class Squeak(QuackBehavior):
    def quack(self):
        print("squeaaaaak")

class MuteQuack(QuackBehavior):
    def quack(self):
        print("mute")

class Duck(object):
    def __init__(self, *behavior):
        self.flyBehavior, self.quackBehavior = behavior
    def display(self):
        pass

    def performFly(self):
        "{0}".format(self.flyBehavior.fly())

    def performQuack(self):
        "{0}".format(self.quackBehavior.quack())

class ModelDuck(Duck):
    def __init__(self):
        super(ModelDuck, self).__init__(FlyNoWay(), MuteQuack())

m1 = ModelDuck()
m1.performFly()
巴扎黑
巴扎黑

reply all(1)
大家讲道理

Yes, typical strategy pattern implementation. Many strategy patterns will have default strategies. If your implementation does not include them, you can consider adding them.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!