Python设计模式之外观模式实例讲授
Python中设计模式之外观模式主张以分多模块举办代码打点而淘汰耦合,下面用实例来举办说明。
应用特性:
在许多巨大而小成果需要挪用需求时,并且这些挪用往往尚有必然相关性,即一挪用就是一系列的。
布局特性:
把原本巨大而繁多的挪用,筹划统一到一个进口类中,以后只通过这一个进口挪用就可以了。
代码布局示例:
class ModuleOne(object): def Create(self): print 'create module one instance' def Delete(self): print 'delete module one instance' class ModuleTwo(object): def Create(self): print 'create module two instance' def Delete(self): print 'delete module two instance' class Facade(object): def __init__(self): self.module_one = ModuleOne() self.module_two = ModuleTwo() def create_module_one(self): self.module_one.Create() def create_module_two(self): self.module_two.Create() def create_both(self): self.module_one.Create() self.module_two.Create() def delete_module_one(self): self.module_one.Delete() def delete_module_two(self): self.module_two.Delete() def delete_both(self): self.module_one.Delete() self.module_two.Delete()
有点雷同署理模式,差异之处是,外观模式不只署理了一个子系统的各个模块的成果,同时站在子系统的角度,通过组合子系统各模块的成果,对外提供越发高层的接口,从而在语义上越发满意子系统层面的需求。
跟着系统成果的不绝扩张,当需要将系统分别成多个子系统或子模块,以淘汰耦合、低落系统代码巨大度、提高可维护性时,署理模式凡是会有用武之地。
再来看一个例子:
class small_or_piece1: def __init__(self): pass def do_small1(self): print 'do small 1' class small_or_piece_2: def __init__(self): pass def do_small2(self): print 'do small 2' class small_or_piece_3: def __init__(self): pass def do_small3(self): print 'do small 3' class outside: def __init__(self): self.__small1 = small_or_piece1() self.__small2 = small_or_piece_2() self.__small3 = small_or_piece_3() def method1(self): self.__small1.do_small1() ##假如这里挪用的不但2两函数,浸染就显示出来了,可以把原本巨大的函数挪用干系清楚化,统一化 self.__small2.do_small2() def method2(self): self.__small2.do_small2() self.__small3.do_small3() if __name__ == '__main__': osd = outside() osd.method1() osd.method2()
功效:
do small 1 do small 2 do small 2 do small 3