設計模式---工廠方法模式
阿新 • • 發佈:2018-12-18
模式描述:
提供一個用於建立物件的介面(工廠介面),讓其實現類(工廠實現類)決定例項化哪一個類(產品類),並且由該實現類建立對應類的例項。
模式作用:
可以一定程度上解耦,消費者和產品實現類隔離開,只依賴產品介面(抽象產品),產品實現類如何改動與消費者完全無關。
可以一定程度增加擴充套件性,若增加一個產品實現,只需要實現產品介面,修改建立產品的方法,消費者可以無感知(若消費者不關心具體產品是什麼的情況)。
可以一定程度增加程式碼的封裝性、可讀性。清楚的程式碼結構,對於消費者來說很少的程式碼量就可以完成很多工作。
注意:抽象工廠才是實際意義的工廠模式,工廠方法只是抽象工廠的一個比較常見的情況。
適用場景:
消費者不關心它所要建立物件的類(產品類)的時候。、
消費者知道它所要建立物件的類(產品類),但不關心如何建立的時候。
等等。。
格式:
提供一個產品類的介面。產品類均要實現這個介面(也可以是abstract類,即抽象產品)。
提供一個工廠類的介面。工廠類均要實現這個介面(即抽象工廠)。
由工廠實現類建立產品類的實現。工廠實現類應有一個方法,用來例項化產品類。
程式碼:
交通工具的介面:
交通工具實體類:
交通工具工廠介面:
具體交通工具工廠類: