Java 紧密耦合是否也包括接口?
我正在编写代码来创建一个简单的游戏,但我不确定这部分是否紧密耦合(高耦合): 有一个叫做GameEngine的界面,它控制着游戏的流程。还有一个名为GameEngineImpl的类,它实现了GameEngine接口。在其他类别(如A、B和C)中,他们使用的游戏引擎如下:Java 紧密耦合是否也包括接口?,java,oop,tightly-coupled-code,Java,Oop,Tightly Coupled Code,我正在编写代码来创建一个简单的游戏,但我不确定这部分是否紧密耦合(高耦合): 有一个叫做GameEngine的界面,它控制着游戏的流程。还有一个名为GameEngineImpl的类,它实现了GameEngine接口。在其他类别(如A、B和C)中,他们使用的游戏引擎如下: public class A { private GameEngine model; public A(GameEngine model, ...) { this.model = mode
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接口,GameEngineImpl类指向GameEngine接口
这是一个紧密耦合的代码吗
这是一个紧密耦合的代码吗
不可以。在class A
和GameEngineImpl
之间插入GameEngine
接口正是缓解A
与GameEngineImpl
之间紧密耦合的正确方法
在UML图中,您不希望看到的是类A
、B
和C
的依赖项指向GameEngineImpl
。通过使用接口,您已经正确地解决了这个问题。紧耦合不包括接口
此外,您会注意到图表中的箭头相互指向
A-->游戏引擎可以是实现不同类型耦合的良好开端。谢谢你,jaco,只是一个简单的问题,所以你的意思是,即使类A、B和C没有实现游戏引擎接口,它也不是紧密耦合的?正确。任何人都可以依赖接口。