Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 紧密耦合是否也包括接口?_Java_Oop_Tightly Coupled Code - Fatal编程技术网

Java 紧密耦合是否也包括接口?

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

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

有一个叫做GameEngine的界面,它控制着游戏的流程。还有一个名为GameEngineImpl的类,它实现了GameEngine接口。在其他类别(如A、B和C)中,他们使用的游戏引擎如下:

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没有实现游戏引擎接口,它也不是紧密耦合的?正确。任何人都可以依赖接口。