模块按接口,图表,逻辑,一般信息进行合同

时间:2012-10-13 23:27:56

标签: model-view-controller interface module components diagram

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

我想知道如何将接口用作两个模块之间的契约。当我绘制模块图时,我永远不知道哪个模块是圆形的,哪个模块具有半开圆形。如何进行区分的明确方式将非常受欢迎!

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

假设我有两个模块,一个包含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;
        }
    }
}

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

我希望我的问题很清楚,先谢谢。

0 个答案:

没有答案