首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我们知道需要改变的情况下,定义一个内部使用的接口有意义吗?

在我们知道需要改变的情况下,定义一个内部使用的接口有意义吗?
EN

Stack Overflow用户
提问于 2020-02-17 16:18:33
回答 2查看 74关注 0票数 2

我正处于一个内部使用的新项目的设计阶段--这个软件永远不会被“发货”。我非常肯定地知道,我们将在未来的项目中增加更多的功能。如果我等一下,这个项目就永远做不成了。我正在通过设计接口来接近这个项目。我希望在代码中使用接口,这样我就可以检查该类并执行某些操作。我还想在某个接口的所有类上执行操作。在某些接口中,类将有不同的逻辑来实现结果。接口对此很有意义。

我的两个问题:

  1. 每个人似乎都说你的界面需要稳定。如果您需要在后面添加其他功能,那么通常要做什么呢?继承基本接口并添加?
  2. 在某些情况下(目前),接口只能由一个类实现。在这种情况下,使用接口仍然有意义吗?
EN

回答 2

Stack Overflow用户

发布于 2020-02-17 16:50:54

对第一个问题的答复:

应该是稳定的是的。要实现这一点,请创建重点非常突出的接口。这意味着1接口应该描述非常有限的功能/只有很少的属性。然后有一个复杂的接口:将它们合并成一个组合的接口。

例如,ITreeIPlant是一个非常广泛的描述,不应该存在。IEverGreenIDeciduous只是稍微好一点而已。你应该看的是更小的部分,比如:

代码语言:javascript
运行
复制
IHaveRoot {}
IRePlantable {}
IHaveLeaves{}

然后:

代码语言:javascript
运行
复制
ILeafAndRootOwner : IHaveRoot, IHaveLeaves

对第二个问题的答复:

这是有意义的,因为您为装饰图案保留了一个开放的可能性,或者在定义一个新的实现时将现有的实现标记为过时。所有其他引用接口的.cs文件都不需要更改!

票数 0
EN

Stack Overflow用户

发布于 2020-02-17 17:06:26

每个人似乎都说你的界面需要稳定。如果您需要在后面添加其他功能,那么通常要做什么呢?继承基本接口并添加?

如果继承给定接口的组件不用于API (这意味着插件必须继承此接口才能与应用程序通信),那么修改接口就没有问题了

在我的情况下,如果我需要扩展内部插件而不破坏客户插件的兼容性(这两个插件都共享相同的接口来工作),我将执行以下操作:-创建一个扩展接口-继承插件类中的扩展接口

在某些情况下(目前),接口只能由一个类实现。在这种情况下,使用接口仍然有意义吗?

您不需要任何东西的接口,这是肯定的;然而,预先规划您将来可能想要扩展的内容,或者单元测试将告诉您您肯定需要一个接口。例如,通过用接口替换应用程序并使用下模注入所需的实现,可以将应用程序与特定的依赖项解耦。

总之,正如@所说:这取决于您正在努力实现什么,您应该为软件的更改做好准备。

如果你说的是一个简单的工具,比如只读取一个文本文件,让我们来计算单词,那么在它上花费大量的精力是没有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60266476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档