当前位置: 首页 > 知识库问答 >
问题:

将类实现与其接口硬耦合可以吗?

斜浩穰
2023-03-14

我试图理解其他人的代码,我在一个关于如何创建构建器的实现中看到了一些相当奇怪的东西。这个设计好吗?

public interface Car {
 static Builder createBuilder() {
     return new CarImpl.Builder();
 }
 interface Builder {
  /// Setters contract
 }
}

共有1个答案

梁巴英
2023-03-14

通常不是,你的接口应该定义一个类的行为(函数的签名),例如在“car”中公开诸如drive、stop和neureel等函数。

您的接口不应该知道实现细节。这就是接口背后的思想--它将实现细节抽象出来,以便它们被封装在负责实现的任何层中,这使得接口干净,只公开什么而不是如何。

 类似资料:
  • 在OOP中,抽象是当我们只向用户提供有用的细节,并隐藏所有实现细节时。那么,如果我有一个接口,并且我在一个类中实现它,那么这是如何实现抽象的呢?我读了这篇关于“如何使用接口实现100%的抽象”的文章 如果这个问题听起来离题或者含糊不清,那么它真的是,我想知道的是oop中的抽象是如何与接口相关的。

  • 问题内容: 我正在学习Scala,并好奇是否有可能: 创建一个在Scala中实现Java接口的对象 将对象编译成类文件并将其打包 使用Java中的对象 我想在Scala中实现自定义Lucene查询解析器,并能够让其他人从Java应用程序访问它。 问题答案: 我假设“对象”实际上是“类”。无论如何,答案是肯定的,您可以这样做。如果您希望所有这些都在同一项目中,则需要利用Scala / Java联合编

  • 问题内容: 一个类文件可以实现几个接口?类文件使用的接口数量是否有限制?提前致谢。 问题答案: 出于所有实际目的,一个类可以实现的接口数量没有限制,但是java不允许您从多个超类继承。 但是,如果您确实想要nitpick,则可以说一个类可以实现的接口数量受接口ID可以以java字节码表示的最大值限制,或者必须由实现这些接口的代码存储量来限制,或者存储字节码的硬盘空间量。这些都是愚蠢的论点。显然,由

  • 问题内容: 一般来说,是否可以限制可以实现接口的类? 更具体地说,通用接口可以将其实现限制为的后代吗? 上下文是对象应以类型安全的方式强制转换为对象。 在用尽所有其他信息源之后,我已经很强烈地预感这是不可能的,但是如果有人可以证明我不满意,我将感到非常高兴! 问题答案: 如果强制转换的能力不是严格必需的,则可以在界面中添加这样的其他方法就足够了: 如果大多数实现实际上都可以扩展,它们可以简单地作为

  • 问题内容: 当我们必须创建一个实现类时,松耦合如何与接口相关联?实现类被强制实现接口中定义的所有那些方法。我不明白这怎么允许失去耦合?我是面向对象的程序设计和软件设计的新手,因此,如果您能对这个话题有所了解,将会很有帮助。一个例子将是锦上添花。 问题答案: 关键是接口不仅允许您编写实现该接口的类,还允许您编写多个接口。 当您具有通过使用接口与类进行交互的代码时,该代码可以与实现该接口的任何类一起使