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