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...