iOS設計模式解析 工廠模式(二)

2021-09-24 07:16:54 字數 1013 閱讀 1122

工廠模式是建立型模式,它的作用是建立物件。具體來說,常見的工廠模式包括簡單工廠模式,工廠方法模式和抽象工廠模式三種。

工廠類通常包含乙個靜態方法(類方法),由該方法根據輸入型別負責建立具體的產品(物件)。

它的作用是降低客戶端和具體產品之間的耦合度。而且符合了開閉原則,以後需要加入新車型,客戶端呼叫的**也基本無需修改。

真正實現業務邏輯的子類。

工廠模式的核心思想在於:

簡單工廠方法有兩個缺點:

工廠類只有乙個,且靜態的工廠方法無法由子類繼承,所以工廠的擴充套件受到限制。

工廠方法裡除了建立物件的**,還有大量的判斷邏輯(if-else)混在裡面,方法會變得越來越臃腫。

工廠方法模式在簡單工廠模式的基礎上演變為抽象出乙個工廠父類,然後用不同的工廠子類來生成各自的產品。

該模式下產品和工廠的可擴充套件性都增強了,但是也隨之而來的是可能會出現工廠類過多的問題。一般可以和簡單工廠模式結合使用。

工廠方法模式只有乙個抽象產品類,而抽象工廠模式有多個抽象產品類。抽象工廠模式裡每個工廠都會生產多種產品,但不同工廠生產的產品屬於不同的系列。抽象工廠模式可以用來解決多產品族的問題。

產品族可以理解為產品系列。舉個例子,現代簡約風格的家具,包括桌子沙發茶几是乙個產品系列;中式古典風格的桌子沙發茶几是另乙個產品系列。抽象工廠模式就是用不同的工廠來生產不同系列下的一組產品。

工廠模式是一種常用的設計模式。在cocoa touch框架中,nsnumber可以看做是乙個工廠模式的變種,它提現了工廠模式的設計思想。它統一了基礎資料型別物件的建立。

呼叫+alloc方法後生成了乙個nsplaceholdernumber的中間物件,給該物件傳送init方法,才生成真正的物件。obj3的實際型別為nscfboolean,obj4的實際型別為nscfnumber。這其中nsnumber即可以看做是工廠類,也是抽象產品基類,而具體產品子類則是nscfbooleannscfnumber

iOS設計模式 《工廠模式》

1 何為工廠模式?工廠方法也稱為虛構造器。它適用於乙個類無法預期需要生成那個類的物件,想讓子類來指定所生成的物件。抽象的product 產品 定義了工廠方法建立的物件的接中。concreteproduct實現了product的介面。create定義了返回product物件的工廠方法。它也可以為工廠方...

iOS 設計模式之工廠模式

ios 工廠模式我的理解是 他就是為了建立物件的 建立物件的時候,我們一般是alloc乙個物件,如果需要建立100個這樣的物件,如果是在乙個for迴圈中還好說,直接一句alloc就行了,但是事實並不那麼如意,我們可能會在不同的地方去建立這個物件,那麼我們可能需要寫100句alloc 了,但是如果我們...

設計模式解析之工廠模式

工廠模式是我們最常用的例項化物件模式,是用工廠方法代替new操作的一種模式。使用工廠模式的好處是,如果你想要更改所例項化的類名等,則只需更改該工廠方法內容即可,不需逐一尋找 中具體例項化的地方 new處 修改了。為系統結構提供靈活的動態擴充套件機制,減少了耦合。header content type...