23種設計模式之工廠方法模式

2021-09-24 04:59:49 字數 1046 閱讀 4340

工廠方法(factorymethod)模式定義:定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中,滿足建立型模式中所要求的『建立與使用相分離』的特點。如果建立的產品(物件)不多,只有乙個工廠類就可以的話,這種模式稱為『簡單工廠模式』,但它不屬於23中設計模式,因為增加產品是會違背『開閉原則』。

優點:使用者只需要知道具體的工廠名稱就可以得到所需要的產品,不需要產品建立的詳細過程。

新增產品是只需要新增具體的產品類和具體的工廠類。不需要對原工廠進行改變,滿足『開閉原則』。但是會有乙個缺點,沒當新增乙個產品,就需要增加乙個具體的產品類和對應的工廠類,增加了系統的複雜度。

使用場景: 1、日誌記錄器:記錄可能記錄到本地硬碟、系統事件、遠端伺服器等,使用者可以選擇記錄日誌到什麼地方。 2、資料庫訪問,當使用者不知道最後系統採用哪一類資料庫,以及資料庫可能有變化時。 3、設計乙個連線伺服器的框架,需要三個協議,"pop3"、"imap"、"http",可以把這三個作為產品類,共同實現乙個介面。

注意事項:作為一種建立類模式,在任何需要生成複雜物件的地方,都可以使用工廠方法模式。有一點需要注意的地方就是複雜物件適合使用工廠模式,而簡單物件,特別是只需要通過 new 就可以完成建立的物件,無需使用工廠模式。如果使用工廠模式,就需要引入乙個工廠類,會增加系統的複雜度。

**演示:

inte***ce food{}

class banana implements food{}

class watermelon implements food{}

public class staticfactory

} public static food getbanana()

public static food getwatermelon()

}class clientelse if ( name.equals("banana"))else

}}

23種設計模式之工廠方法模式

定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。型別 建立類模式 類圖 inte ce iproduct class product implements iproduct inte ce ifactory class factory impleme...

23種設計模式之工廠方法模式

定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類.工廠方法使乙個類的例項化延遲到其子類 工廠方法模式的通用類圖 其中 product 負責產品的共性,實現對事物最抽象的定義 creator 為抽象建立類,也就是抽象工廠,具體如何建立產品類是由具體的實現工廠 concretecreator ...

23種設計模式 工廠方法模式

工廠方法模式 1.來個實物類介面 public inte ce phone2.實現介面,來個華為手機類 public class huaweiphone implements phone 3.來個小公尺手機類 public class xiaomiphone implements phone 4.簡...