Python设计模式之外观模式实例讲授
当前位置:以往代写 > Python教程 >Python设计模式之外观模式实例讲授
2019-06-14

Python设计模式之外观模式实例讲授

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

    关键字:

在线提交作业