設計模式 工廠方法模式

2021-09-07 05:16:16 字數 1852 閱讀 6297

具體的工廠物件負責生產具體的產品物件;

符合開放--封閉"原則(ocp),新增產品時,只需新增工廠的實現類、產品的實現類,不修改原來的**;

屬於23種gof設計模式中的一種;

具體工廠'繼承'抽象工廠;

具體產品'繼承'抽象產品;

每個具體工廠負責生產對應的具體產品;

產品使用者使用每個具體工廠生產的具體產品;

類關係圖:

**實現:

【抽象工廠】定義乙個工廠介面,包含乙個建立例項的方法,如下:

package

com.pichen.dp.creationalpattern.factorymethod;

public

inte***ce

ifathe***ctory

【具體工廠】定義兩個具體工廠類,實現工廠介面,如下:

package

com.pichen.dp.creationalpattern.factorymethod;

public

class chinesefathe***ctory implements

ifathe***ctory

}

package

com.pichen.dp.creationalpattern.factorymethod;

public

class americanfathe***ctory implements

ifathe***ctory

}

【抽象產品】定義乙個抽象產品類:

package

com.pichen.dp.creationalpattern.factorymethod;

public

abstract

class

father

/***

@param

name the name to set

*/public

void

setname(string name)

public

abstract

void

printname();

}

【具體產品】定義兩個具體產品類,繼承抽象產品:

package

com.pichen.dp.creationalpattern.factorymethod;

public

class chinesefather extends

father

@override

public

void

printname()

}

package

com.pichen.dp.creationalpattern.factorymethod;

public

class americanfather extends

father

@override

public

void

printname()

}

【產品使用者】寫個main函式,呼叫具體工廠類生產具體產品:

package

com.pichen.dp.creationalpattern.factorymethod;

public

class

main

}

設計模式 工廠方法模式

一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到工廠子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角...

設計模式 工廠方法模式

1 factorymethod.h ifndef factorymethod h define factorymethod h include include using namespace std class osproduct 產品,product,產品的抽象類 class windowspro...

設計模式 工廠方法模式

框架的基礎知識 對框架的理解 框架和設計模式的關係 工廠方法模式 定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個類的例項化延遲到其子類。結構 產品 public inte ce product 具體產品 public class productimpl...