1. 程式人生 > >設計模式---工廠方法模式

設計模式---工廠方法模式

模式描述:

       提供一個用於建立物件的介面(工廠介面),讓其實現類(工廠實現類)決定例項化哪一個類(產品類),並且由該實現類建立對應類的例項。

模式作用:

       可以一定程度上解耦,消費者和產品實現類隔離開,只依賴產品介面(抽象產品),產品實現類如何改動與消費者完全無關。

       可以一定程度增加擴充套件性,若增加一個產品實現,只需要實現產品介面,修改建立產品的方法,消費者可以無感知(若消費者不關心具體產品是什麼的情況)。

       可以一定程度增加程式碼的封裝性、可讀性。清楚的程式碼結構,對於消費者來說很少的程式碼量就可以完成很多工作。

注意:抽象工廠才是實際意義的工廠模式,工廠方法只是抽象工廠的一個比較常見的情況。

適用場景:

       消費者不關心它所要建立物件的類(產品類)的時候。、

消費者知道它所要建立物件的類(產品類),但不關心如何建立的時候。

等等。。

格式:

       提供一個產品類的介面。產品類均要實現這個介面(也可以是abstract類,即抽象產品)。

       提供一個工廠類的介面。工廠類均要實現這個介面(即抽象工廠)。

       由工廠實現類建立產品類的實現。工廠實現類應有一個方法,用來例項化產品類。

程式碼:

       交通工具的介面:

      

       交通工具實體類:

       交通工具工廠介面:

       具體交通工具工廠類: