0
我有什麼? 我有一個抽象類QueryExecutor
和許多類繼承,我剛剛給他們兩個。構造結果對象的邏輯是相同的,但每個繼承的類都返回一個不同的集合 - 其中一些集合在System.Web.UI.WebControls
名稱空間中,一些集合是自定義集合類。設計問題 - 共同的基類和不同的返回類型
abstract class QueryExecutor
{
abstract object Execute();
//Common methods for construction of query
}
class SqlQueryExecutor : QueryExecutor
{
public object Execute()
{
ProfileNodeCollection nodes = new ProfileNodeCollection();
//Construct nodes
return nodes;
}
}
class CamlQueryExecutor : QueryExecutor
{
public object Execute()
{
TreeNodeCollection nodes = new TreeNodeCollection();
//Construct nodes
return nodes;
}
}
我想要什麼?
我想有一個實例化適當的子類並返回結果的工廠。在上面的設計中,我需要投射來自QueryExecutor.Execute()
方法的結果。我不想這樣做。
我面臨什麼問題?
由於返回類型在子類中有所不同(有的在System.Web.dll
中),上述設計是否適合此問題?
我還有其他的方法嗎?
好的。好主意......讓我試試看。謝謝! – Vijay 2009-10-22 08:15:49