iOS設計模式 工廠方法

2021-07-10 01:40:38 字數 1200 閱讀 3250

工廠方法模式:定義建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使得乙個類的例項化延遲到其子類。

編譯時無法準確預期要建立的物件的類;

類想讓子類決定在執行時建立什麼;

類有若干輔助類為其子類,而你想將返回哪個子類這一資訊區域性話;

在objective-c中兩步物件建立法[[someclass alloc] init].但是還有一些便利的建立方法。例如,nsnumber有很多numberwith*方法;其中有兩個是numberwithbool:和numberwithchar:。它們是類方法,也就是說我們向nsnumber傳送[[nsnumber numberwithbool:bool]]與[[nsnumber numberwithchar:char]],以獲得與傳入引數同型別的各種nsnumber例項。與如何建立nsnumber的具體子型別的例項有關的細節,都有nsnumber的類工廠方法負責。[[nsnumber numberwithbool:bool]]的情況是,方法接受值bool,並把nsnumber的內部子類的乙個例項初始化,讓它能夠反應傳入的值。

1、定義通過工廠方法建立的類的統一父類(例如:animal)和通過工廠方法建立的各個類(例如:dog、cat等),並為各個子類提供初始化細節。

//通過工廠方法建立類的實現舉例

- (id)initwithname:(nsstring*)name

return self;

}

2、定義生成器父類(例如:animalgenerator)和各個生成器子類(例如:doggenerator、cargenerator)。

3、生成器父類中建立工廠方法、各個生成器子類中過載該方法

//animalgenerator中工廠方法

- (animla*)animalwithname:(nsstring*)name

//doggenerator對animalgenerator中工廠方法的過載

- (animal*)animalwithname:(nsstring*)name

4、使用

doggenerator *doggenerator = [[doggenerator alloc] init];

//不同生成器建立不同的動物

animal *dog = [[doggenerator animalwithname:@"小七"]];

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...

設計模式 工廠方法

設計模式 工廠方法 工廠方法與抽象方法 面向介面程式設計可以提高 的靈活性 可以橫向擴充 切忌不能使用面向實現的程式設計,這樣做不便於以後業務的擴充和 的靈活性。工廠方法 就是把 new class 的過程交給 factory來做.構造類的細節不需要我們知道。比如 構造乙個 list 我們可以這樣寫...

設計模式 工廠方法

簡單工廠針對擴充套件時需要修改 違反了ocp 開閉原則 而工廠方法模式在擴充套件時,更滿足ocp。當然比較簡單工廠模式,工廠方法模式有一組實現了相同介面的工廠類,而簡單工廠模式就只有乙個工廠類。和簡單工廠方法一樣,還是以生成汽車為例子。定義要生成的物件的公共介面 public inte ce car...