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

首頁 > 編程 > Python > 正文

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

2020-01-04 17:42:27
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石城县| 明水县| 廊坊市| 集安市| 柳州市| 嘉义县| 吉林市| 嵊州市| 长沙市| 兰考县| 宣城市| 临安市| 彰化市| 米林县| 彭山县| 乐山市| 安图县| 崇信县| 安阳市| 涿鹿县| 平乐县| 克拉玛依市| 浦城县| 麟游县| 西畴县| 和静县| 辛集市| 上虞市| 长春市| 永泰县| 秦皇岛市| 沾化县| 邓州市| 荥经县| 漠河县| 本溪| 朝阳区| 西城区| 扎囊县| 周宁县| 辽中县|