1. 程式人生 > >Java的設計模式(二)

Java的設計模式(二)

子類 外觀模式 設計原則 有一個 單一職責原則 工廠 類適配器 總結 中文

oo設計原則

  • 最少知識原則,只和朋友交談。該原則要求減少對象之間的交互。具體指的是只調用本對象中的成員變量的方法、當作參數傳進來的對象的方法,和本方法中創建的對象的方法。技術分享圖片

    總結來說,就是對方法的調用不超過兩個“.”。這樣做的好處是減少各類間的依賴。缺點是會產生很多“包裝類”,因為不能直接太多“.”去調用方法,只能在直接相關的對象中包裝一些方法去實現需求。

  • 單一職責原則。做人要專一, 類也一樣。一個類應該只有一組功能,只有一個引起變化的原因。只將一個責任指派給一個類是很困難的。這個原則可以保證模塊的高內聚


設計模式

  • 適配器模式。適配器模式有兩種形式,分別是類適配器和對象適配器,由於java中不能用多重繼承,所以我們討論的是對象適配器。適配器模式承擔著轉換接口的作用。假設客戶需要用到某一種接口,我們擁有類似功能但是不是客戶所期待的接口,這個時候適配器就起作用了。適配器通過實現這兩種接口,讓目標接口去委托被適配者實現相應的功能,從而達到轉換接口的作用。
  • 外觀模式。外觀模式提供了一個統一的接口,用來訪問子系統中的一群接口。實質也就是對子系統的高層抽象,可以讓客戶不用理會諸多子系統的繁瑣操作,直接去操作高層接口就行了,這樣可以讓子系統更容易使用。如開車一事,先要開啟電源,再放手剎,再踩油門等動作,而外觀模式將這個抽象為開車,直接操作這個接口就可以啟動車輛了。
  • 模板方法模式。在一個方法中定義算法的骨架,而將算法的某些步驟延遲到子類中。工廠方法是特殊模板方法。一般來說,這個模式是各類框架的基礎。模板方法中會存在一類特殊的方法,叫鉤子方法。這個方法可以什麽都不做,又或者去控制算法的流程,具體實現由子類覆蓋。
  • 組合模式。組合模式通過將對象組合成樹形結構來表現“整體/部分”層次關系,能讓客戶以一致的方式處理個別對象及其對象組合。這個定義有點抽象。我來舉個例子。一個文件系統,裏面有文件夾對象,有文件對象。其中文件夾這樣含有其他對象的稱為組合對象,文件稱為葉節點對象。通過抽象出一個統一的接口,讓文件夾和文件繼承這個接口,從而我們可以把整個文件樹看成統一的一個整體,客戶可以用一致的方式處理文件夾和文件,而不用去判斷這是文件夾然後執行這個動作,那是文件,所以又得執行另外的動作。也就是說我們實現了透明性,客戶無需知道到底是什麽東西,只管按一種方式操作就行了。通常,這樣是違背單一職責原則的,因為抽象類中其實擔負著兩種職責。取舍。
    技術分享圖片

Java的設計模式(二)