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))
二、多对一或一对多模式
适配器模式即为多需求对统一方案模式
浙公网安备 33010602011771号