設計模式-創建型

一、 工廠模式:
1.1爲什麼要用工廠模式

a. 解耦 :把對象的創建和使用的過程分開。

b. 降低代碼重複: 如果創建某個對象的過程都很複雜,需要一定的代碼量,而且很多地方都要用到,那麼就會有很多的重複代碼。

c. 降低維護成本 :由於創建過程都由工廠統一管理,所以發生業務邏輯變化,不需要找到所有需要創建某個對象的地方去逐個修正,只需要在工廠裏修改即可,降低維護成本。

1.2 簡單工廠模式

這個就是簡單的封裝,把對象創建的邏輯封裝起來,客戶端向工廠類傳一個需要的對象的標識,工廠類根據這個標識創建對應的對象返回給客戶端。

通常,工廠類創建的對象繼承於同一個父類或者具有相同的接口。每個工廠只創建一類具體類的對象。

1.3抽象工廠模式

抽象工廠模式包括了以下類:

抽象工廠:聲明一組用於創建一族產品的方法,每個方法對應一種對象;在抽象工廠中聲明瞭多個工廠方法, 用於創建不同類型的對象, 抽象工廠可以是接口, 也可以是抽象類或者具體類。

具體工廠:具體工廠實現了抽象工廠,每個工廠方法返回一個具體對象,一個具體工廠所創建的具體對象構成一個族。

抽象類接口:提供一組所有類都具有的業務方法。

抽象類:用於實現抽象接口所定義的業務方法,但是該角色對於抽象接口定義的方法只做抽象實現,即所有實現都被定義爲抽象方法,最終的具體實現全部交給具體類實現。引入該角色主要是爲了根據聲明不同的抽象類,將類區分爲不同的等級結構。

具體類:該角色繼承抽象類,主要用於實現抽象類中聲明的抽象方法,完成不同等級結構,不同族的業務方法的具體實現。

二、單例模式

單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。

注意:
1、單例類只能有一個實例。
2、單例類必須自己創建自己的唯一實例。
3、單例類必須給所有其他對象提供這一實例。
意圖:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。
主要解決:一個全局使用的類頻繁地創建與銷燬。

三、建造者模式

適用場景:一個複雜的對象可由多個類別的子對象組成,每個類別的子對象可由相似的類創建(同一個父類)。

例如,去肯德基,漢堡、可樂、薯條、炸雞翅等是不變的,而其組合是經常變化的,生成出所謂的"套餐"。一個典型的套餐可以是一個漢堡(Burger)和一杯冷飲(Cold drink)。漢堡(Burger)可以是素食漢堡(Veg Burger)或雞肉漢堡(Chicken Burger),它們是包在紙盒中。冷飲(Cold drink)可以是可口可樂(coke)或百事可樂(pepsi),它們是裝在瓶子中。

四、原型模式

似乎對於前端來說,幾乎沒有用過,一些手遊引擎裏面的clone方法是不是這種模式?

原型模式(Prototype Pattern)是用於創建重複的對象,同時又能保證性能。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。

這種模式是實現了一個原型接口,該接口用於創建當前對象的克隆。當直接創建對象的代價比較大時,則採用這種模式。例如,一個對象需要在一個高代價的數據庫操作之後被創建。我們可以緩存該對象,在下一個請求時返回它的克隆,在需要的時候更新數據庫,以此來減少數據庫調用。

完。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章