0

我有一个带有公共抽象方法的抽象类。我想知道我是否应该只定义一个接口并让抽象类实现它。这里有一般的经验法则吗?目前它工作得很好,但我想注意 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);
}
4

4 回答 4

2

你问的问题有一系列不同的答案。可能会因意见而异。

就个人而言,我喜欢定义接口,然后使用抽象类提供一些固定功能。如果我需要提供不同的实现,这允许我返回到接口,但在处理在多个实现中执行相同操作的方法/属性时可以节省我的时间。

于 2012-08-15T19:06:39.280 回答
1

约定是使用抽象。在这方面,这意味着一个接口或一个抽象类。

如果您的代码按原样工作,请不要仅仅为了添加不需要的接口而对其进行更改。

于 2012-08-15T19:05:54.087 回答
1

这是从 2003 年开始的,但在我的脑海中仍然如此

抽象类与接口的建议

您可以在抽象类中定义构造函数,而您不能在接口中定义构造函数。

于 2012-08-15T19:14:06.110 回答
0

Cwalina Krzysztof 有一本很棒的书,叫做“框架设计指南”。如果我没记错的话,其中一条准则是如果您希望开发人员扩展您的类并使用接口(如果您不这样做)则使用抽象类。

于 2012-08-16T08:01:25.353 回答