天天看點

建立型模式 工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式

說起模式來大家都很頭疼.大篇的介紹和概念,還有uml圖.不弄的複雜點都不好意思拿出來叫做教程.本篇文章列舉出了各個模式的示例,額....省略了很多東西.凡人很難了解!了解了的都是超神級别的人物!

關鍵詞:Factory,AbstractFactory,getInstance,Builder,Prototype

一 簡單工廠模式不屬于23中涉及模式,簡單工廠一般分為:普通簡單工廠、多方法簡單工廠、靜态方法簡單工廠。

簡單工廠模式:專門定義一個類來負責建立其他類的執行個體,被建立的執行個體通常都具有共同的父類。它又稱為靜态工廠方法模式,屬于類的建立型模式。

簡單工廠模式的實質是由一個工廠類根據傳入的參數,動态決定應該建立哪一個産品類(這些産品類繼承自一個父類或接口)的執行個體。

 普通簡單工廠

 多方法簡單工廠

靜态方法簡單工廠

在以上的三種模式中,第一種如果傳入的字元串有誤,不能正确建立對象,第三種相對于第二種,不需要執行個體化工廠類,是以,大多數情況下,我們會選用第三種——靜态工廠方法模式。

二 工廠模式

很多人拿工廠模式和簡單工廠模式進行比較..我到現在還不知道用意為何...

我對工廠模式的了解很簡單,就是一個實作抽象工廠接口且受到應用程式調用以建立産品對象的類.讓我們看一個zf2中的執行個體

三 抽象工廠模式  

在抽象工廠模式中,有一個産品族的概念:所謂的産品族,是指位于不同産品等級結構中功能相關聯的産品組成的家族。抽象工廠模式所提供的一系列産品就組成一個産品族;而工廠方法提供的一系列産品稱為一個等級結構。我們依然拿生産汽車的例子來說明他們之間的差別。

建立型模式 工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式

抽象工廠生産的是産品族.例如表單..一個表單有多個表單元素.下面我們看zf2的一個執行個體:

抽象工廠是工廠模式的複雜情況

總結:

簡單工廠:生産同一系列的任意産品 (對于增加新的産品,無能為力)

工廠模式:生産固定産品 (支援增加任意産品)  

抽象工廠: 生産固定産品族,

四 單例模式

單例模式 保證應用隻有一個全局惟一的執行個體,并且提供一個通路它的全局通路點。沒啥好解釋的

五 建造者模式

建造者模式:将一個複雜對象的構造與它的表示分離,使同樣的建構過程可以建立不同的表示

六 原型模式

原型設計模式建立對象的方式是複制和克隆初始對象或原型...

注意clone是淺複制.如果複制的對象中有屬性也為對象,則克隆後的對象中該屬性是引用...可以使用__clone在克隆的時候對其進行處理

繼續閱讀