这是我的问题,我希望我能正确地写出来,因为这是一个确切的问题。
我想知道如何将接口用作两个模块之间的契约。当我绘制模块图时,我永远不知道哪个模块是圆形的,哪个模块具有半开圆形。如何进行区分的明确方式将非常受欢迎!
我不想要一个关于如何使用接口的例子,因为我知道接口的属性(行为等)。
假设我有两个模块,一个包含Bussiness逻辑,所以我称之为“Model”,另一个包含GUI,所以我称之为“View”。
视图在每个节点上都需要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
}
太好了,我们可以在Model上为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;
}
}
}
但我总是想知道这是否是在模型和视图之间创建契约的好方法。 如果我要在模块之间创建双向合同,我该怎么做?因为它可能在接口之间创建一个循环逻辑......
我希望我的问题很清楚,先谢谢。