我想知道,在以下場景中最好使用哪種模式。請建議設計模式
我有不同類型的數據表示爲用戶。用戶可以選擇,數據如何在屏幕上呈現。
- 列表項
- 下拉列表
- 單選按鈕列表
- 複選框等。
我知道,抽象工廠,或工廠方法將在這裏套件。但有什麼辦法擺脫以下內容:
If (SomeType == SomeTypes.DropDown)
{
return new DropDownClass();
}
有什麼辦法可以做到更抽象嗎?
我想知道,在以下場景中最好使用哪種模式。請建議設計模式
我有不同類型的數據表示爲用戶。用戶可以選擇,數據如何在屏幕上呈現。
我知道,抽象工廠,或工廠方法將在這裏套件。但有什麼辦法擺脫以下內容:
If (SomeType == SomeTypes.DropDown)
{
return new DropDownClass();
}
有什麼辦法可以做到更抽象嗎?
您可以爲SimpleFactories創建一個List,並依次詢問它是否可以處理Type以及是否讓它創建組件。
它應該是這樣的:
interface SimpleFactory{
boolean canHandle(SomeType type);
Component create()
}
class Factory{
List<SimpleFactory) factories = ....
Component create(SomeType type){
for(f : factories)
if (f.canHandle(type) return f.create()
return null;
}
哦,謝謝。我需要閱讀.NET中的泛型。 – user896048
在.net中我經常使用的仿製藥,繼承和多態相結合,以確定在運行時一個特定的請求處理程序。
當你使用像在某個時刻在this後
說明,即使在工廠這一切是很容易的,你必須確定哪些返回... –