設計模式 1 工廠方法

2021-07-30 13:49:25 字數 2450 閱讀 6018

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進行實列化...