接口+扩展方法(mixin)更适合抽象类吗?接口+扩展(mixin)与基类
如果你的答案是“取决于”,它依赖于什么?
我看到两个可能的优点,接口+扩展方法。
- 接口是可以继承的,类不是。
- 您可以使用扩展方法以非破坏方式扩展接口。 (实现您的接口的客户端将获得您的新基本实现,但仍可以覆盖它。)
我还没有想到这种方法的缺点。可能有一个明显简单的原因,即接口+扩展方法会失败。关于这一主题
两个有用的物品
- Create Mixins with Interfaces and Extension Methods
- Abstract Base Classes Have Versioning Problems Too
我还没有看到明确的答案。到目前为止,我相信Jon的回应是最有帮助的,但也一定要读Stefan Steinegger的回答。在选择方法之前,它们都提出了应该考虑的重要问题。我的理解是现在“需要使用继承来覆盖方法?使用抽象基础,否则使用接口+扩展。” – dss539 2009-04-29 15:50:37