Estoy escribiendo código para crear un juego simple, pero no estoy seguro de que esta parte está estrechamente unida o no (alta acoplamiento):
Existe una interfaz llamada GameEngine en la que controla el flujo del juego. Y hay una clase llamada GameEngineImpl que implementa la interfaz GameEngine. En otras clases como A, B, y C, que utilizan GameEngine como esto:
public class A {
private GameEngine model;
public A(GameEngine model, ...) {
this.model = model;
}
public void draw() {
model.tick();
}
}
Las otras dos clases también utilizan GameEngine de una manera similar a la clase A.
Cuando lo convirtió en diagrama UML clase, las clases, A, B, y las dependencias de C se señala hacia la interfaz GameEngine y clase GameEngineImpl se señala la interfaz GameEngine.
¿Sería esto un código fuertemente acoplado?
¿Sería esto un código fuertemente acoplado?
Nº Inserción de la GameEngine
interfaz entre class A
y GameEngineImpl
es exactamente el enfoque correcto para aliviar estrecho acoplamiento de A
a GameEngineImpl
.
Lo que no quiere en su diagrama UML es las clases A
, B
y C
las dependencias 's que apunta hacia el GameEngineImpl
. Se han resuelto de manera correcta a través del uso de una interfaz. Estrecho acoplamiento no incluye la interfaz.
Asimismo, se dará cuenta en su diagrama de las flechas que señalan el uno contra el otro.
A --> GameEngine <-- GameEngineImpl
Ésto es una cosa buena. Se conoce como Inversión de Control.