工廠方法模式

2021-07-28 11:33:59 字數 1982 閱讀 4073

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類

工廠方法模式中,抽象產品類product負責定義產品的共性,實現對事物最抽象的定義;creator為抽象建立類,也就是抽象工廠,具體如何建立產品類是由具體的實現工廠concretecreator完成的。

女媧造人的例子,女媧可以看成是乙個場景類。human介面看成是產品,而下面的三個實現類則可以看成是具體的產品。abstracthumanfactory看成是creator,humanfactory看成是具體的creator。類圖如下:

human介面**如下:

package com.cqu.factory_method;   

/*** 類說明

*/public inte***ce human

blackhuman**:

package com.cqu.factory_method;   

/*** 類說明

*/public class blackhuman implements human

@override

public void talk()

}

whitehuman:

package com.cqu.factory_method;   

/*** 類說明

*/public class whitehuman implements human

@override

public void talk()

}

yellowhuman:

package com.cqu.factory_method;   

/*** 類說明

*/public class yellowhuman implements human

@override

public void talk()

}

abstracthumanfactory:

package com.cqu.factory_method;   

/*** 類說明

*/public abstract class abstracthumanfactory

humanfactory:

package com.cqu.factory_method;   

/*** 類說明

*/public class humanfactory extends abstracthumanfactory catch (instantiationexception | illegalacces***ception | classnotfoundexception e)

return (t) human;

}}

女媧類(模擬場景類)nvwa:

package com.cqu.factory_method;   

/*** 類說明

*/public class nvwa

}

執行結果:

建立白人:

我的**是白色的

我會說英語

建立黑人

我的**是黑色的

黑人的話別人聽不懂

建立黃人

我的**是黃色的

我說的是漢語

*注:該工廠方法模式為看秦小波著《設計模式之禪》總結,詳情請看該書工廠方法模式一章。

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...