我越来越多地看到这种风格的例子了。无论是否可能需要接口,都会发生这种情况。在其他情况下,采用新接口证明是有帮助的。但是,不能总是预测它是否会被使用,而是为新属性创建一个新的接口以符合......最佳实践与否?
答案 0 :(得分:1)
像往常一样,这取决于。如果您正在编写公共API,这种方法非常强大。这方面的一个例子是Progistics / Connectship API。在我使用它时,有一个具体的类。其余的公共接口都是接口。他们能够剔除产品的整个实现并重写它,保持接口不变。
当然,这与此相关。如果你想要将它投入到石头中,你必须花费大量的时间和精力制作一个优雅的API(当然,无论你是否选择使用接口都是如此)。
另一方面,如果您正在为内部业务应用程序编写数据访问层,则可能无法获得尽可能多的奖励。
答案 1 :(得分:1)
理论上,对于包含业务逻辑的任何类,您应该有一个接口或抽象类 - 因此您可以对其进行单元测试和/或轻松交换实现。用于表示数据的类 - 模型类 - 不必将接口实现为“最佳实践”(它必须在某处结束)。
答案 2 :(得分:1)
我必须选择极限编程和YAGNI(你不需要它)练习。只有当需要它时,才能提取接口。否则,它只是增加了开销。
当然,例外情况是需要在测试方案中添加Mock对象,并且子类化无法达到您想要的效果。
本主题与Emergent Design有关。我认为这是优秀设计师的标志。
答案 3 :(得分:1)
我会说不。如果熟悉的对象共享属性,则创建接口。如果需要,则创建接口。我认为默认情况下为所有属性创建接口会产生太多开销。