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

最近在看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()
巴扎黑
巴扎黑

모든 응답(1)
大家讲道理

是的,典型的策略模式实现。很多策略模式会有默认策略,你的实现里面没有,可以考虑加上。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!