当前位置: 首页 > 面试题库 >

接口应该放在单独的包装中吗?[关闭]

曾阳飙
2023-03-14
问题内容

已关闭 。这个问题是基于观点的。它当前不接受答案。

想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。

4年前关闭。

改善这个问题

我是一个刚开始从事大型项目的团队的新手,该项目具有许多组件和依赖项。对于每个组件,都有一个interfaces包装,用于放置该组件的暴露接口。这是一个好习惯吗?

我通常的做法一直是将接口和实现放在同一个程序包中。


问题答案:

放置接口和实现都是司空见惯的事,这似乎不是问题。

以Java API为例-大多数类在同一包中都包含了接口及其实现。

java.util包装为例:

它包含的接口,如SetMapList,同时还具有实现,如HashSetHashMapArrayList

此外,Javadocs被设计为在这些条件下可以很好地工作,因为当显示包的内容时,它将文档分为 接口 视图。

除非有大量的接口,否则仅为接口安装软件包实际上可能有点多余。但是仅仅为了这样做,将接口分成自己的程序包听起来是一种不好的做法。

如果有必要将接口名称与实现区别开来,则可以采用一种命名约定,以使接口更易于识别:

  • 在接口名称前添加I.NET框架中的接口采用了这种方法。可以很容易地说出这IList是列表的接口。

  • _使用-able后缀。_这种方法是Java API中经常看到,比如ComparableIterableSerializable仅举几例。



 类似资料:
  • 我有一些关于界面使用的一般问题: 为每个对象类创建接口的优势是什么? 接口应该只包含'getter'方法吗? 为什么不是二传手? 为什么我应该为每个对象类创建一个接口?它会在JUnit测试中为我服务吗? 例如: 谢谢

  • 每当我想在Docker容器中转发端口时,我使用一个简单的< code>-p 8080:8080命令。 现在,我在几个地方(这里和这里)读到,这可能是不安全的,我应该包括localhost环回,如下所示:。 有人能解释一下吗?什么时候应该这样做,实际的安全影响是什么?

  • 在Kafka-manager github页面中写道: 最低配置是用于kafka管理器状态的zoo门主机。这可以在conf目录的application.conf文件中找到。相同的文件将打包在分发zip文件中;您可以在所需服务器上解压缩文件后修改设置。 Kafka-manager . ZK hosts = " my . zookeeper . host . com:2181 "您可以通过逗号分隔来指

  • 问题内容: 添加索引的开销有据可查,但是我无法找到有关何时使用各种索引的各种信息,这些信息与要建立索引的各种文档类型有关。 这是一个通用示例来说明问题: 说我们有以下实体 产品(名称,ProductID,ProductCategoryID,商店列表) 产品类别(名称,ProductCategoryID) 商店(名称,商店ID) 我是否应该将这三种不同类型的文档转储到一个索引中,每个索引都具有适当的

  • 问题内容: 我正在努力打包一个供公众使用的API。因此,我试图限制只公开给我希望公开和可支持的方法。当然,在此之下有许多受限的访问方法。 麻烦的是,我有很多内部代码需要访问这些受限方法而又不将这些方法公开。这会产生两个问题: 我无法创建在类之间进行通信的接口,因为这会使这些内部方法公开。 除非将大多数内部类放在同一包中,否则我将无法访问受保护的方法或默认方法。 因此,我在干净隔离的程序包中有大约7

  • 我有一个带有websocket连接的AWS API网关。还有一个lambda(LA),它被这个API网关调用,并将一个请求连同websocket连接ID一起发送到另一个服务。在那之后它就存在了。还有另一个lambda,它正在监听某个后端数据存储。如果存在任何更新事件,数据存储服务将调用。事件包括websocket连接ID。我想让向API网关发送一个更新事件,API网关通过websocket连接将该