python 设计模式

python 设计模式

设计模式分类

对象的对应关系分为三类:一对一,一对多,多对多。

基本定态为:1不用if-else 2)清晰分离出属性和方法 3)接口使用传递实例

高级:1)清晰分离出属性和方法 2)设置环境 3)事物放置在环境中 4)让环境和事物变为动态。

其中策略模式属于多对多模式

一、代替一次if-else 策略模式

完全抽象种类动作和物种,分得越细越好。然后将动作实例传入物种中即可使用。

class Bird:
    def setFlybeh(self,fl):
        self.flybeh = fl
    def setQuackbeh(self,qk):
        self.quackbeh = qk
    def performFly(self):
        self.flybeh.fly()
    def performQuack(self):
        self.quackbeh.quack()

class dandinghe(Bird):
    def __init__(self):
        self.setFlybeh(Flywithfly())

    def disp(self):
        print "dandinghe"

class Fly:
    def fly(self):
        pass
class Flywithfly(Fly):
    def fly(self):
        print "fly with fly"
class Flynoway(Fly):
    def fly(self):
        print "fly no"


n = dandinghe()
n.performFly()
n.disp()

 抽象工厂模式

#! /usr/bin/env python


class FranceDateFormatter:
    def dateForm(self,y,m,d):
        y,m,d = (str(x)= for x in (y,m,d))
        y = '20'+ y if len(y)==2 else y
        m = '0'+m if len(m)==1 else m
        d = '0'+d if len(d)==1 else d
        return ("{0}/{1}/{2}".format(d,m,y))

 二、多对一或一对多模式

适配器模式即为多需求对统一方案模式

 

posted on 2016-10-24 13:38  lexn  阅读(97)  评论(0)    收藏  举报

导航