1.什麼是設計模式
(1)設計模式(design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。
(2)設計模式不是一種方法和技術,而是一種思想
(3)設計模式和具體的語言無關,學習設計模式就是要建立物件導向的思想。
(3)盡可能的面向介面程式設計,低耦合,高內聚,使設計的程式可復用
(4)學習設計模式能夠促進對物件導向思想的理解,反之亦然。它們相輔相成
2.設計模式的幾個要素
1)名字 必須有乙個簡單,有意義的名字
2)問題 描述在何時使用模式解決方案 描述設計的組成部分以及如何解決問題
3)效果 描述模式的效果以及優缺點
4)設計模式的分類
建立型模式 物件的建立結構型模式 物件的組成(結構)行為型模式 物件的行為
建立型模式(6個):
簡單工廠模式
工廠方法模式
抽象工廠模式
建造者模式
原型模式
單例模式。
結構型模式(7個):
外觀模式
介面卡模式
**模式
裝飾模式
橋接模式
組合模式
享元模式
行為型模式(10個):
模版方法模式
狀態模式
職責鏈模式
命令模式
訪問者模式
策略模式
備忘錄模式
迭代器模式
直譯器模式
3.工廠方法模式概述
a1.工廠方法模式中抽象工廠類負責定義建立物件的介面,具體物件的建立工作由繼承抽象工廠的具體類實現。
a2.工廠方法模式優點
客戶端不需要在負責物件的建立,從而明確了各個類的職責,如果有新的物件增加,只需要增加乙個具體的類和具體的工廠類即可,不影響已有的**,後期維護容易,增強了系統的擴充套件性
a3.工廠方法模式缺點
需要額外的編寫**,增加了工作量
a4.下面通過例子進行說明
動物抽象類:
public
abstract animal
具體狗類:
public
class
dogextends
animal {}
具體貓類:
public
class
catextends
animal {}
開始,在測試類中每個具體的內容自己建立物件,但是,建立物件的工作如果比較麻煩,就需要有人專門做這個事情,所以就知道了乙個專門的類來建立物件。
public
class animalfactory
//public static dog createdog()
//public static cat createcat()
//改進
public
static animal createanimal(string animalname)
else
if(「cat」.equals(animale)) else
}}
改進
動物抽象類:
public
abstract animal
工廠介面:
public
inte***ce factory
具體狗類:
public
class
dogextends
animal {}
具體貓類:
public
class
catextends
animal {}
開始,在測試類中每個具體的內容自己建立物件,但是,建立物件的工作如果比較麻煩,就需要有人專門做這個事情,所以就知道了乙個專門的類來建立物件。發現每次修改**太麻煩,用工廠方法改進,針對每乙個具體的實現提供乙個具體工廠。
狗工廠:
public
class
dogfactory
implements
factory
}
貓工廠:
public
class
catfactory
implements
factory
}
簡單工廠設計模式與工廠設計模式
工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...