91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python筆記之facade模式

發布時間:2020-10-06 06:06:32 來源:腳本之家 閱讀:158 作者:谷雨yun 欄目:開發技術

facade模式,即門面模式,也稱外觀模式,這個模式的核心思想是使用facade對象為外部客戶端提供一個統一的訪問一組子系統的接口,即客戶端不會直接與各個子系統交互,而是通過facade對象與各個子系統進行通信并使用子系統的相應功能。

可以通過下面這個圖來理解facade模式:

Python筆記之facade模式

子系統:各個子系統原則上都是獨立存在的,互不干涉的,重要的是它們都不會去關注facade對象,更不會去引用facade對象。

facade:facade對象負責將各個子系統組合成在一起,并為外部提供一個“舒適的外觀”和訪問接口。

客戶端:客戶端通過facade對象去和各個子系統進行交互,不會直接去和各個子系統打交道。

簡單示例:

class Shampoo:
 """子系統:賣各種洗發露"""
 def __init__(self):
  print('We sell all kinds of shampoo!')

 def piaorou_500ml(self, number):
  print('This is 500ml piaorou shampoo! Total: %d' % number)


class WashingPowder:
 """子系統:賣各種洗衣粉"""
 def __init__(self):
  print('We sell all kinds of washing powder!')

 def libai_3kg(self, number):
  print('This is 3kg libai washing powder! Total: %d' % number)


class Tissue:
 """子系統:賣各種抽紙"""
 def __init__(self):
  print('We sell all kinds of tissue!')

 def jierou_200sheets(self, number):
  print('This is 200 sheets tissue! Total: %d' % number)


class Salesman:
 """facade:售貨員"""
 def __init__(self):
  self.shampoo = Shampoo()
  self.washing_powder = WashingPowder()
  self.tissue = Tissue()
  print('What can I help you?')

 def sale_for_family(self):
  """家庭套餐"""
  self.shampoo.piaorou_500ml(1)
  self.washing_powder.libai_3kg(2)
  self.tissue.jierou_200sheets(6)


class UncleLi:
 """客戶端:李大爺"""
 def __init__(self):
  print('I want bug something!')

 def buy_for_family(self):
  """直接從售貨員那里購買家庭套餐"""
  sale_man = Salesman()
  sale_man.sale_for_family()

其他與facade模式思想相近的編程原則也可以參考下,但需要注意的是“原則”本身需要根據具體情況來靈活應用,而不是一定要這么做:

最少知識原則:最少知識意味著需要盡量減少對象之間的交互,但是也需要注意以下幾點:

  • 在設計系統時,在創建每個對象時,都需要多考查下會與之交互的類的數量以及交互的方式。
  • 避免多個對象彼此緊密耦合的情況。

迪米特法則:它是一個設計準則,包含以下幾點:

  • 每個單元對系統中其他單元知道得越少越好。
  • 每個單元只與其朋友交流。
  • 單元不應該知道它操作的對象的內部細節。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮阳县| 五寨县| 武强县| 瑞安市| 宜春市| 武乡县| 武宣县| 永丰县| 平定县| 华容县| 留坝县| 友谊县| 安阳县| 普格县| 剑川县| 富平县| 伊通| 武安市| 新乡市| 商水县| 布拖县| 新建县| 丽水市| 修水县| 扶余县| 北票市| 银川市| 宝丰县| 花莲市| 苍溪县| 枣强县| 临沭县| 和静县| 萍乡市| 礼泉县| 来安县| 逊克县| 都匀市| 抚宁县| 乐亭县| 萝北县|