工廠模式是建立型模式,它的作用是建立物件。具體來說,常見的工廠模式包括簡單工廠模式,工廠方法模式和抽象工廠模式三種。
工廠類通常包含乙個靜態方法(類方法),由該方法根據輸入型別負責建立具體的產品(物件)。
它的作用是降低客戶端和具體產品之間的耦合度。而且符合了開閉原則,以後需要加入新車型,客戶端呼叫的**也基本無需修改。
真正實現業務邏輯的子類。
工廠模式的核心思想在於:
簡單工廠方法有兩個缺點:
工廠類只有乙個,且靜態的工廠方法無法由子類繼承,所以工廠的擴充套件受到限制。
工廠方法裡除了建立物件的**,還有大量的判斷邏輯(if-else)混在裡面,方法會變得越來越臃腫。
工廠方法模式在簡單工廠模式的基礎上演變為抽象出乙個工廠父類,然後用不同的工廠子類來生成各自的產品。
該模式下產品和工廠的可擴充套件性都增強了,但是也隨之而來的是可能會出現工廠類過多的問題。一般可以和簡單工廠模式結合使用。
工廠方法模式只有乙個抽象產品類,而抽象工廠模式有多個抽象產品類。抽象工廠模式裡每個工廠都會生產多種產品,但不同工廠生產的產品屬於不同的系列。抽象工廠模式可以用來解決多產品族的問題。
產品族可以理解為產品系列。舉個例子,現代簡約風格的家具,包括桌子沙發茶几是乙個產品系列;中式古典風格的桌子沙發茶几是另乙個產品系列。抽象工廠模式就是用不同的工廠來生產不同系列下的一組產品。
工廠模式是一種常用的設計模式。在cocoa touch框架中,nsnumber
可以看做是乙個工廠模式的變種,它提現了工廠模式的設計思想。它統一了基礎資料型別物件的建立。
呼叫+alloc方法後生成了乙個nsplaceholdernumber
的中間物件,給該物件傳送init方法,才生成真正的物件。obj3的實際型別為nscfboolean
,obj4的實際型別為nscfnumber
。這其中nsnumber即可以看做是工廠類,也是抽象產品基類,而具體產品子類則是nscfboolean
和nscfnumber
。
iOS設計模式 《工廠模式》
1 何為工廠模式?工廠方法也稱為虛構造器。它適用於乙個類無法預期需要生成那個類的物件,想讓子類來指定所生成的物件。抽象的product 產品 定義了工廠方法建立的物件的接中。concreteproduct實現了product的介面。create定義了返回product物件的工廠方法。它也可以為工廠方...
iOS 設計模式之工廠模式
ios 工廠模式我的理解是 他就是為了建立物件的 建立物件的時候,我們一般是alloc乙個物件,如果需要建立100個這樣的物件,如果是在乙個for迴圈中還好說,直接一句alloc就行了,但是事實並不那麼如意,我們可能會在不同的地方去建立這個物件,那麼我們可能需要寫100句alloc 了,但是如果我們...
設計模式解析之工廠模式
工廠模式是我們最常用的例項化物件模式,是用工廠方法代替new操作的一種模式。使用工廠模式的好處是,如果你想要更改所例項化的類名等,則只需更改該工廠方法內容即可,不需逐一尋找 中具體例項化的地方 new處 修改了。為系統結構提供靈活的動態擴充套件機制,減少了耦合。header content type...