1-概述
一:工廠方法模式(1)建立產品物件的工廠介面
(2)子類物件決定例項化的具體物件;工廠不負責具體的物件建立
二:設計原則
(1)"開-閉"
(2)依賴倒置
無論工廠或者產品依賴於抽象而非具體的實現類
三:場合
(1)子類可能很多,以後要不斷增加不同的子類實現
* 抽象工廠-生產抽象寶刀
*/public inte***ce iswordfactory
***************==具體工廠1********************==
package shejimoshinadianshi.factory;
import shejimoshinadianshi.factory.itf.iswordfactory;
import shejimoshinadianshi.factory.model.abstractsword;
import shejimoshinadianshi.factory.model.object.qixingsword;
/*** created by hjw on 16/8/28.
* caocao具體工廠-生產七星寶刀的工廠
*/public class caocao implements iswordfactory }
***************====具體工廠2********************
package shejimoshinadianshi.factory;
import shejimoshinadianshi.factory.itf.iswordfactory;
import shejimoshinadianshi.factory.model.abstractsword;
import shejimoshinadianshi.factory.model.object.baxingsword;
/*** created by hjw on 16/8/28.
*/public class caocao2 implements iswordfactory }
***************==抽象產品********************==
package shejimoshinadianshi.factory.model;
/*** created by hjw on 16/8/28.
* 抽象的產品
*/public abstract class abstractsword
public string getname()
public void setname(string name) }
***************===具體產品1*************************=
package shejimoshinadianshi.factory.model.object;
import shejimoshinadianshi.factory.model.abstractsword;
/*** created by hjw on 16/8/28.
*/public class baxingsword extends abstractsword }
***************===具體產品2*************************=
package shejimoshinadianshi.factory.model.object;
import shejimoshinadianshi.factory.model.abstractsword;
/*** created by hjw on 16/8/28.
* 七星寶刀-具體的產品
*/public class qixingsword extends abstractsword }
package shejimoshinadianshi.factory;
import shejimoshinadianshi.factory.itf.iswordfactory;
import shejimoshinadianshi.factory.model.abstractsword;
/*** created by hjw on 16/8/28.
*/ public static void main(string args)
}
設計模式 1 工廠方法
問題描述 乙個介面 如下圖的product 可能有多種實現方式。程式邏輯在例項化這種型別 介面的具體類 如下圖的concreteproduct 的時候,如果直接使用的方式來撰寫 當需求變更的時候,程式需要使用另外乙個子類 例如subproduct 來替換該類的時候,所有使用的地方都需要修改。這種 的...
設計模式(1) 工廠方法模式
工廠方法模式uml類圖如圖所示 說明 具體產品繼承抽象產品,具體工廠繼承抽象工廠,具體工廠依賴具體產品。具體例項 如下所示 其實是在簡單工廠模式例項 的基礎上對工廠類進行了一下抽象 抽象工廠類 public abstract class abstractfactory具體產品a工廠類 ublic c...
設計模式 1 工廠方法模式
簡單工廠模式有個問題是,類的建立是需要依賴工廠類的,如果要拓展程式,那麼需要對工廠類進行修改,這個增加了風險。工廠方法模式可以避免這種情況,方法建立乙個工廠介面和建立多個工廠類,理解如下 對了抽象方法a,b和c分別為其的兩個不同實現,現在建立工廠介面d,工廠介面d的實列類e和f分別對b和c進行實列化...