0

这是我的问题,我希望我能正确地写出来,因为这是一个精确的问题。

我想知道如何将接口用作两个模块之间的合同。当我绘制模块图时,我永远不知道哪个模块是圆圈,哪个模块是半开的圆圈。关于如何区分的明确方法将不胜感激!

我不想要关于如何使用接口的示例,因为我知道接口的属性(行为等)。

假设我有 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;
        }
    }
}

但我总是想知道这是否是在模型和视图之间创建契约的好方法。如果我必须在模块之间创建双向合同,我应该怎么做?因为它可能会在接口之间创建循环逻辑......

我希望我的问题足够清楚,在此先感谢。

4

0 回答 0