(在 .NET 的上下文中,它的价值是什么)
我倾向于不使用继承,也很少使用接口。我遇到了一个认为接口是自吐槽以来最好的东西的人。他到处使用它们。我不明白这一点,因此接下来的问题。我只是想检查一下我对接口的理解。
如果您在任何地方都使用界面,我假设您可以预测未来,您的应用程序需求已确定并且您的应用程序不会发生任何变化。对我来说,尤其是在早期开发过程中,界面成为了拖累。该应用程序在其生命周期中非常动态。如果您需要在界面中减去或添加成员,很多东西都会中断。上面的人说他创建了另一个接口来处理新成员。什么都没有。
不是组合吗?为什么不使用没有接口的组合?更灵活。
他如何处理必须从接口中减去成员的情况?基本上他不会。事情刚刚破裂,这很好,因为现在您可以看到所有受影响的区域并修复它们。我们不应该更优雅地找出所有相关代码路径的位置,而应该通过蛮力撕掉部分类?
我将软件应用程序视为图形。完整图是最坏的情况,具有 n(n-1)/2。这意味着每个班级都与每个班级交谈。令人困惑的蜘蛛网。n-1 是最好的,其中它们是严格的通信等级。添加另一个接口只是为了补偿一个新的需要的成员,会在图中添加一个顶点,这意味着更多的边和更强的 n(n-1)/2 方程的实现。没有接口的组合更像是 mixin。只有选择类使用特定的方法。使用接口,所有类都被迫使用成员,即使它们不需要它们。组合/混合方法不会添加新的不需要的边缘。