我有一个抽象类,上面有一个公共抽象方法。我想知道我是否应该只定义一个接口并让抽象类实现它。这里有一般的经验法则吗?目前它工作正常,但我想要注意OO约定。目前它的外观如下:
public abstract class MySuckyClass
{
public bool TryGetMember(GetMemberBinder binder, out object result)
{
result = this.GetMember(binder.Name);
if (result == null)
return false;
return true;
}
public abstract object GetMember(string memberName);
}
答案 0 :(得分:2)
你问的是一个有不同答案的问题。可能会根据意见而有所不同。
就个人而言,我喜欢定义接口,然后使用抽象类提供一些预制功能。如果我需要提供不同的实现,这允许我返回界面,但在处理在多个实现中执行相同操作的方法/属性时节省了时间。
答案 1 :(得分:1)
惯例是使用抽象。在这方面,这意味着接口或抽象类。
如果您的代码按原样运行,请不要仅仅为了添加不需要的界面而更改它。
答案 2 :(得分:1)
答案 3 :(得分:0)
Cwalina Krzysztof写了一本名为“框架设计指南”的好书。如果我没记错的话,其中一条准则就是使用抽象类,如果你想让开发人员扩展你的类并使用接口则不然。