国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

舉例分析Python中設計模式之外觀模式的運用

2019-11-26 14:31:43
字體:
來源:轉載
供稿:網友

應用特性:
在很多復雜而小功能需要調用需求時,而且這些調用往往還有一定相關性,即一調用就是一系列的。
結構特性:
把原本復雜而繁多的調用,規劃統一到一個入口類中,從此只通過這一個入口調用就可以了。

代碼結構示例:

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 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉善县| 桃园市| 丰顺县| 崇州市| 娄底市| 英吉沙县| 饶平县| 双辽市| 龙井市| 宁南县| 广东省| 加查县| 广元市| 恩平市| 稻城县| 古蔺县| 曲沃县| 靖远县| 沅陵县| 阳谷县| 法库县| 吴忠市| 临邑县| 潞城市| 南江县| 楚雄市| 疏附县| 迁安市| 平遥县| 金秀| 赞皇县| 江都市| 东安县| 饶河县| 赤城县| 富顺县| 桃江县| 绿春县| 正定县| 西宁市| 汤原县|