先有接口还是类? - The Interface or the Class

11

在设计软件新功能的过程中,哪个流程是最佳实践?

  1. 设计类将要实现的接口。
  2. 先编写类,然后稍后提取接口。

如果选择第二种方式,何时决定需要接口?

16个回答

0

如果您真的经历了设计阶段,那么在编写任何代码之前,您会为界面和类创建设计。对吧?


0
通常情况下,只有在您打算实现多个类时才需要接口。因此,接口应该首先定义。

你是不是想说:“因此,应该先写CLASS?” - Tim Frey
类只在总体抽象中排在第一位。 - Yes - that Jake.

0

我必须同意S. Lott的观点,并补充说,一旦创建了接口的设计,它就是“铸成大错”的。

仅出于这个原因,除非您知道它将包含的所有内容,否则不应创建接口。


1
任何类型的公共API肯定是“一成不变”的,但大多数接口,即使被声明为“公共”的,也仅在项目内部使用,并且可以随时轻松更改。 - Tim Frey
但是,当设计全新的流程时,你将如何处理这个问题呢?我还不知道它将面临哪些使用类型。这只是草稿和原型级别的工作。 - David Williams
1
在这种情况下,首先创建一个实现,一旦确定它应该包含什么,就从中提取一个接口。 - Powerlord

0

先考虑类的设计。

只有在经历了变革的熔炉后,美丽的设计才能被确定为美丽。如果接口一开始就没有从代码中铸造出来,你怎么知道它们是否经得起时间的考验呢?


0
接口随着时间的推移变得非常糟糕。每当您更改接口时,都会打破合同。实现接口的所有类都必须进行重构。为了保持向后兼容性,开发人员会创造性地设计IFoo2而不是IFoo。随着时间的推移,这将成为一个维护噩梦。
请注意以下内容:优先定义类而不是接口。在需要提供值类型的多态层次结构时使用接口。另一种使用接口的方式是实现类似于多重继承的效果。

-1

我不知道哪个是最好的,但我确定在所有情况下正确的答案总是这两个选项之一!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接