建立型模式5種 2

2022-08-02 11:33:12 字數 2059 閱讀 3806

建立型模式的主要關注點是「怎樣建立物件?」,它的主要特點是「將物件的建立與使用分離」。

使用者不需要關注物件的建立細節,物件的建立由相關的工廠來完成。就像我們去商場購買商品時,不需要知道商品是怎麼生產出來一樣,因為它們由專門的廠商生產。

1.單例(singleton)模式:

在計算機系統中,還有 windows 的**站、作業系統中的檔案系統、多執行緒中的執行緒池、顯示卡的驅動程式物件、印表機的後台處理服務、應用程式的日誌物件、資料庫的連線池、**的計數器、web 應用的配置物件、應用程式中的對話方塊、系統中的快取等常常被設計成單例。

2.原型(prototype)模式:

在有些系統中,存在大量相同或相似物件的建立問題,如果用傳統的建構函式來建立物件,會比較複雜且耗時耗資源,用原型模式生成物件就很高效,就像孫悟空拔下猴毛輕輕一吹就變出很多孫悟空一樣簡單。

例如,windows 作業系統的安裝通常較耗時,如果複製就快了很多。

3.工廠方法(factorymethod)模式:

如果要建立的產品不多,只要乙個工廠類就可以完成,這種模式叫「簡單工廠模式」,它不屬於 gof 的 23 種經典設計模式,它的缺點是增加新產品時會違背「開閉原則」。

各種產品有專門的工廠生產。

不同的工廠生產同類的不同的產品。工廠a、b分別生產洗髮水a系列、洗髮水b系列。

4.抽象工廠(abstractfactory)模式:

工廠方法模式只考慮生產同等級的產品,但是在現實生活中許多任務廠是綜合型的工廠,能生產多等級(種類) 的產品,如農場裡既養動物又種植物,電器廠既生產電視機又生產洗衣機或空調,大學既有軟體專業又有生物專業等。

同一工廠生產不同的產品。工廠a生產洗髮水、沐浴露等多種產品。

5.建造者(builder)模式:

客廳是產品,包括牆、電視和沙發等組成部分。具體裝修工人是具體建造者,他們負責裝修與牆、電視和沙發的布局。專案經理是指揮者,他負責指揮裝修工人進行裝修。

模式的結構

1.單例模式的主要角色如下。

1.單例類:包含乙個例項且能自行建立這個例項的類。

2.訪問類:使用單例的類。

2.原型模式包含以下主要角色。

1.抽象原型類:規定了具體原型物件必須實現的介面。

2.具體原型類:實現抽象原型類的 clone() 方法,它是可被複製的物件。

3.訪問類:使用具體原型類中的 clone() 方法來複製新的物件。

3.工廠方法模式的主要角色如下。

1.抽象工廠(abstract factory):提供了建立產品的介面,呼叫者通過它訪問具體工廠的工廠方法 newproduct() 來建立產品。

2.具體工廠(concretefactory):主要是實現抽象工廠中的抽象方法,完成具體產品的建立。

3.抽象產品(product):定義了產品的規範,描述了產品的主要特性和功能。

4.具體產品(concreteproduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它同具體工廠之間一一對應。

4.抽象工廠模式的主要角色如下。

1.抽象工廠(abstract factory):提供了建立產品的介面,它包含多個建立產品的方法 newproduct(),可以建立多個不同等級的產品。

2.具體工廠(concrete factory):主要是實現抽象工廠中的多個抽象方法,完成具體產品的建立。

3.抽象產品(product):定義了產品的規範,描述了產品的主要特性和功能,抽象工廠模式有多個抽象產品。

4.具體產品(concreteproduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它 同具體工廠之間是多對一的關係。

5.建造者(builder)模式的主要角色如下。

1.產品角色(product):它是包含多個組成部件的複雜物件,由具體建造者來建立其各個滅部件。

2.抽象建造者(builder):它是乙個包含建立產品各個子部件的抽象方法的介面,通常還包含乙個返回複雜產品的方法 getresult()。

3.具體建造者(concrete builder):實現 builder 介面,完成複雜產品的各個部件的具體建立方法。

4.指揮者(director):它呼叫建造者物件中的部件構造與裝配方法完成複雜物件的建立,在指揮者中不涉及具體產品的資訊。

5種建立型模式之原型模式(二)

在有些系統中,存在大量相同或相似物件的建立問題,如果用傳統的建構函式來建立物件,會比較複雜且耗時耗資源,用原型模式生成物件就很高效,原型 prototype 模式的定義如下 用乙個已經建立的例項作為原型,通過複製該原型物件來建立乙個和原型相同或相似的新物件。在這裡,原型例項指定了要建立的物件的種類。...

設計模式(2) 建立型模式

對設計模式學了有一段的時間了,設計模式是軟體工程的基石,他是人們反覆使用的,程式設計師們幾十年的經驗總結,以 開放 封閉 單一職責 依賴倒轉 黎克特制代換 合成聚合復用 迪公尺特法則 介面隔離 為基本原則。本篇部落格我對建立型模式進行總結,其中包括 單例模式 工廠方法模式 抽象工廠模式 建造者模式 ...

設計模式 建立型模式 五種

模式型別 設計模式 建立型模式 五種 工廠方法模式,原型模式,建造者模式,抽象工廠模式,單例模式 結構型模式 七種 介面卡模式,橋接模式,裝飾模式,組合模式,外觀模式,享元模式,模式 行為型模式 十一種 模板方法模式,命令模式,迭代器模式,觀察者模式,中介者模式,備忘錄模式,直譯器模式,狀態模式,策...