これが私の質問です。正確な質問なので、正しく書くことを願っています。
2 つのモジュール間のコントラクトとしてインターフェイスを使用する方法を知りたいです。モジュール図を描くとき、どのモジュールが円で、どのモジュールが半円であるかわかりません。区別する方法についての明確な方法は非常に高く評価されます!
インターフェイスのプロパティ(動作など)を知っているため、インターフェイスの使用方法の例は必要ありません。
2 つのモジュールを取得したとします。一方にはビジネス ロジックが含まれているので「モデル」と呼び、もう一方には GUI が含まれているので「ビュー」と呼びます。
ビューには、各ノードに Treeview と Matrix が必要です。そのため、モデルが認識しているツリーのような階層を取得し、ノードごとに値のマトリックスを埋めたいと考えています。
root
- node1
-- leaf1
-- leaf2
- node2
- node3
-- leaf3
-- leaf4
私の直感は、次のようなことをすべきだと言っています。
interface IModelHierarchicMatrix {
void setTreeViewValues(TreeViewModel treeview);
void getMatrixValues();
void setMatrixValues(int[] values);
}
class Model implements IModelHierarchicMatrix {
// the code where I override the interface's function
}
モデルで GUI に必要な関数を呼び出すことができます。しかし、そのような動作 (クラスなど) が必要であることを GUI のクラスにどのように伝えることができますか?
interface IModelHierarchicMatrixGlue {
void acceptModel(IModelHierarchicMatrix model);
}
class Gui implements IModelHierarchicMatrixGlue {
private IModelHierarchicMatrix model;
...
@Override
public void acceptModel(IModelHierarchicMatrix model) {
if (this.model == null) {
this.model = model;
}
}
}
しかし、モデルとビューの間のコントラクトを作成する良い方法であるかどうかは常に疑問に思っています。モジュール間の双方向コントラクトを作成する必要がある場合、どうすればよいですか? インターフェイス間に循環ロジックが作成される可能性があるため...
私の質問が十分に明確であることを願っています。事前に感謝します。