gpt4 book ai didi

java - 紧耦合也可以包括接口(interface)吗?

转载 作者:行者123 更新时间:2023-11-30 07:39:54 24 4
gpt4 key购买 nike

我正在编写代码来创建一个简单的游戏,但我不确定这部分是否紧耦合(高耦合):

有一个名为 GameEngine 的界面,它控制游戏的流程。并且有一个名为 GameEngineImpl 的类实现了 GameEngine 接口(interface)。在其他类如 A、B 和 C 中,他们使用 GameEngine 是这样的:

public class A {

private GameEngine model;

public A(GameEngine model, ...) {

this.model = model;

}

public void draw() {
model.tick();
}
}

其他两个类也以与类 A 类似的方式使用 GameEngine。

当我将其转换为 UML 类图时,类、A、B 和 C 的依赖项指向 GameEngine 接口(interface),而 GameEngineImpl 类指向 GameEngine 接口(interface)。

这会是一个紧密耦合的代码吗?

最佳答案

Would this be a tightly coupled code?

没有。插入 GameEngine class A之间的接口(interface)和 GameEngineImpl正是缓解 A 紧耦合的正确方法至 GameEngineImpl .

您在 UML 图中不想要的是类 A , B , 和 C的依赖项指向 GameEngineImpl .您已经通过使用接口(interface)正确地解决了这个问题。紧耦合不包括接口(interface)。

此外,您会注意到图表中的箭头相互指向。

A --> GameEngine <-- GameEngineImpl

这是一件好事。它被称为控制反转。

关于java - 紧耦合也可以包括接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58789382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com