有三種模式的工廠:簡單工廠,工廠方法,抽象工廠,主要是用來抽象化物件的建立工作的。
又叫做靜態工廠建方法(static factory method
)模式,
我們需要根據不同的條件創造不同的物件,將創造物件的工作整合到乙個工廠裡,由乙個工廠物件來負責所有產品類的建立,由乙個工廠來決定要建立出哪一種產品類的例項,這個就是簡單工廠。
publicview codeclass
product
}public
class
car : product
}public
class
bus : product
}public
class
productfactory
return
pro;
}}namespace
model}}
上例由productfactory來決定是要建立car還是bus。
這種模式的優點在於擺脫了直接建立具體產品物件的煩瑣
,僅僅需要負責「消費」物件就可以了。而不必管這些物件究竟如何建立及如何組織的,當產品類增加時,只需要增加產品類和修改工廠方法。
是由不同的工廠來具體生產不同產品類的例項。比如汽車工廠生產汽車,公共汽車工廠生產公共汽車
publicview codeclass
product
}public
class
car : product
}public
class
bus : product
}inte***ce
ifactory
public
class
ca***ctory:ifactory
}public
class
busfactory : ifactory
}namespace
model}}
核心類僅僅負責給出工廠生產物件的介面,而不接觸工廠生產產品類的這種細節。這使得工廠方法模式可以允許系統在不修改已有工廠和產品的情況下引進新的工廠和產品。
對於同種類的產品,不同的工廠生產不同型別的,比如不同蛋糕店雖然都生產蛋糕,但是蛋糕的口味不一樣,是不同型別的蛋糕。比如汽車工廠和公共汽車工廠都生產輪子,但是乙個是汽車輪子,乙個是公汽輪子
publicview codeclass
product
}public
class
wheel
}public
class
car : product
}public
class
bus : product
}public
class
carwheel:wheel
}public
class
buswheel : wheel
}inte***ce
ifactory
public
class
ca***ctory:ifactory
public
wheel createwheel()
}public
class
busfactory : ifactory
public
wheel createwheel()
}namespace
model}}
抽象工廠模式使我們不用關心產品的型別,只需要找到負責生產產品的工廠,要求工廠生產某種商品就可以了。
c 設計模式 之 工廠模式之 工廠模式
1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...
設計模式 設計模式之工廠模式
工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...
設計模式 工廠模式之簡單工廠
工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...