pleasehelpmeee:
私は簡単なゲームを作成するためのコードを書いていますが、私は(高結合)してください。この部分は密結合されていることかどうかではない午前:
それはゲームの流れを制御するGameEngineと呼ばれるインターフェースがあります。そしてGameEngineImplと呼ばれるクラスが実装GameEngineインターフェースことがあります。A、B、およびCのような他のクラスにおいては、彼らはこのようGameEngineを使用します。
public class A {
private GameEngine model;
public A(GameEngine model, ...) {
this.model = model;
}
public void draw() {
model.tick();
}
}
他の2つのクラスは、クラスAと同様の方法でGameEngineを使用します
Iは、UMLクラス図、クラス、A、B、及びCの依存関係にそれを変換する際GameEngineインターフェースの方を向いたとGameEngineImplクラスがGameEngineインタフェースを指しました。
これは、密結合コードでしょうか?
jaco0646:
これは、密結合コードでしょうか?
特許挿入GameEngine
との間のインタフェースをclass A
とGameEngineImpl
の緊密な結合を軽減するために正確に正しいアプローチであるA
とGameEngineImpl
。
あなたはあなたのUMLダイアグラムにはしたくないことは、クラスであるA
、B
とC
の依存関係がの方を向いてGameEngineImpl
。あなたは、インターフェイスを使用してこれを正しく解決しています。密結合は、インタフェースが含まれていません。
また、あなたはあなたの図に互いに指す矢印に気づくでしょう。
A --> GameEngine <-- GameEngineImpl
これは良いことです。これは、制御の反転として知られています。