設計模式的概述與工廠設計模式

2021-07-14 08:06:16 字數 2440 閱讀 9595

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...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...