設計模式 工廠方法模式

2021-08-03 12:30:59 字數 2387 閱讀 1318

1

整體類圖:

介面:

public

inte***ce output

兩個實現類:

public

class

outputimpl

implements

output

}public

class

betteroutputimpl

implements

output

}

工廠介面:

public

inte***ce outputfactory

工廠實現類:

public

class

outputimplfactory

implements

outputfactory

}public

class

betteroutputimplfactory

implements

outputfactory

}

超級工廠方法:

public

class outfactoryfactory else}}

測試:

public

class textmain

public

void

print()

public

static

void

main(string args)

}

簡單方法模式與工廠模式類似,不同的是簡單工廠模式使用乙個方法為不同介面實現類返回不同的物件,工廠方法模式為每乙個介面實現類都分別建立乙個工廠來返回對應的物件。

2 對於工廠方法模式的第二種理解,將選擇哪種類交給外部去判斷,為每乙個實現類分別建立乙個工廠。繼承結構圖:

操作介面:

public

inte***ce operation

定義乙個抽象類,新增運算元:

public

abstract

class

operationabstract

implements

operation

public

void

setnumbera(integer numbera)

public integer getnumberb()

public

void

setnumberb(integer numberb)

}

兩個實現類:

public

class

operationadd

extends

operationabstract

}public

class

operationsub

extends

operationabstract

}

工廠介面:

public

inte***ce factory

工廠實現類:

public

class

factoryadd

implements

factory

}public

class

factorysub

implements

factory

}

測試:

factory factory=new factorysub();

operationabstract operationabstract=factory.createoperation();

operationabstract.setnumbera(1);

operationabstract.setnumberb(1);

system.out

.println(operationabstract.getresult());

相比簡單工廠模式,工廠方法模式可擴充套件性更高,更靈活。

參考《大話設計模式》

設計模式 工廠方法模式

一 工廠方法 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...