1. 程式人生 > >【設計模式】--建立型模式

【設計模式】--建立型模式

【前言】

設計模式主要分為三種類型,分別是:建立型模式、行為型模式、結構型模式,今天我們主要講一下建立型模式。

【正文】

1.什麼是建立型模式?

建立型模式旨在將系統與它的物件建立、結合、表示的方式分離。

2.為什麼要有建立型模式或者說建立型模式存在的意義?

建立型模式是處理物件建立的設計模式,試圖根據實際情況使用合適的方式建立物件。基本的建立方式可能會導致軟體設計上的問題,所以建立型模式是通過某種方式控制物件的建立來解決問題。

建立型模式主要有兩個主導思想:一是將系統使用的具體類封裝起來。二是隱藏這些具體類的例項建立和結合的方式。

3.建立型模式分為哪幾種?

(1)簡單工廠模式:它定義一個具體的工廠類來負責建立所有類的物件,並初始化建立的物件。

簡單工廠的組成:工廠類、抽象類、具體類,然後通過通過客戶端呼叫工廠類建立相應的物件。

注:簡單工廠模式是所有工廠模式中最簡單的一個,它不屬於23種模式中的一個模式,它主要是幫助初學者瞭解設計模式,增長信心的一個模式。

(2)  工廠方法模式:抽象工廠類負責定義一個用於建立物件的介面,讓子工廠類決定例項化哪一個類,它使一個類的例項化延遲到其子類。

工廠方法的組成:抽象工廠類、具體工廠類、抽象產品類、具體產品類。

(3)抽象工廠模式:提供一個建立一系列或相關依賴物件的介面,而無需指定它們具體的類。

抽象工廠的組成:抽象工廠類、具體工廠類、抽象產品類、具體產品類。

它主要適用於:

一個系統要由多個產品系列中的一個來配置時

一個系統要獨立於它的產品的建立、組合和表示時

當要強調一系列相關的產品物件的設計以便進行聯合使用時

當提供一個產品類庫,而只要顯示它們的介面而不是實現時

(4)建造者模式:將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示

例如:在建造遊戲角色時,造小人的過程是穩定的,都需要頭身手腳,而建立的細節是不同的,有高矮胖瘦,但對於客戶來講,客戶只關心結果,而不重視具體的建造細節,我們只需要根據客戶的需求建立相應的一個小人罷了。這就是建立模式的動機。、

(5)單例模式:保證一個類僅有一個例項,而且自行例項化並向整個系統提供整個例項。

例如:在現實生活中,居民身份證號具有唯一性,同一個人不允許有多個身份證號碼,如果不慎丟失,在補辦的時候還是使用原來的身份證號。

 

(6)原型模式:指定建立物件的種類,並且通過拷貝這些原型建立新的物件

例如:在很多軟體中,如果每次建立一個物件要花大量的時間,這時候就可以考慮用原型模式,複製得到的物件與原型物件是兩個型別相同但是記憶體地址不同的物件,通過原型模式可以大大提高物件的建立效率。

4.他們之間的聯絡或者區別是什麼?

(1)簡單工廠與工廠方法

工廠方法是簡單工廠的擴充套件,工廠方法解決了簡單工廠不符合開閉原則的問題,工廠方法模式是把具體物件建立交給相應的子類去做,比如我們現在要新增一種運算類,只需要新增相應的運算類和相應的工廠子類即可,符合開閉原則。每個具體的工廠子類只負責建立自己所對應的產品,符合單一職責原則。可以說工廠方法模式是簡單工廠的升級版,即保留了簡單工廠的優點,又解決了簡單工廠的缺點。

(2)抽象工廠和工廠方法

工廠方法針對的是一個產品等級的結構,而抽象工廠是針對多個產品等級的結構。

(3)建造者模式和抽象工廠模式

他們都可以建立複雜的物件,但是建造者模式注重一步一步的去建造一個複雜的物件,強調的是產品的內部組成。而抽象工廠模式注重的是多個系列的產品物件。

5.總結:

建立型模式都是為了更好的建立物件,使程式更面向物件化,我們在專案中可以好好的利用一下這些模式。