设计模式-结构型模式,外观模式(6)
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
class A(): def run(self): print 'A run' def jump(self): print 'A jump' class B(): def run(self): print 'B run' def jump(self): print 'B jump' class C(): def run(self): print 'C run' def jump(self): print 'C jump' class Facade(): def __init__(self): self.a=A() self.b=B() self.c=C() def run(self): for item in ('a','b','c'): getattr(self,item).run() def jump(self): for item in ('a','b','c'): getattr(self,item).jump() if __name__=='__main__': facade=Facade() facade.run() facade.jump()
A B C的关系是他们看起来是鸭子类型,不管他们3个有没有共同的抽象基类或者实现相同的接口,但他们的都有相同的公用方法名。
反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。