1 c# polymorphism class-design
我不确定它真的是一个"多态"问题,但无论如何......所以我有一个抽象类和另外两个继承它的类.
来自基类的一些代码具有一个变量,该变量在扩展基类的类之间会有所不同.
最好的方法是什么?覆盖"获取"方法?稍微更改架构以调用从base classe到传递值的扩展类的函数...
这是一个例子(它不会编译,只是我如何做的一个小例子):
public abstract class BaseAbstract class {
... some code ....
// Here "listName" would change depending on the extending class
protected List<Items> getAllItems(String listName) {
Web.getList(listName);
... some code ...
}
protected abstract List<Items> getAllItems();
}
public class NewClass : BaseAbstract {
protected override void getAllItems() {
return getAllItems("ListNameOfNewClass");
}
}
Run Code Online (Sandbox Code Playgroud)
我就是这样做的,但是IMO的维护并不是很清楚和容易.
任何想法或评论欢迎!
我可能会选择这样的东西:
public abstract class Base
{
protected abstract string ListName { get; }
public List<Item> GetItems()
{
return Web.GetList(ListName);
}
}
public class Child : Base
{
protected override string ListName
{
get { return "MyListName"; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |