建模组合并暴露内部界面

时间:2013-05-11 04:07:39

标签: modeling composition uml

我需要建模这样的东西,

ClassA实现接口IClass;

ClassB实现接口IClass;

ClassA有一个ClassB(组合);

但ClassA的接口与ClassB的接口相同,即我需要将ClassB的接口公开为ClassA的接口。我是这样做的,

                                 +--------------+
                                 |              |
                        +-------->    IClass    <---------+
                        |        |              |         |
                        |        +--------------+         |<<implements>>
          <<implements>>|                                 |
                        |                                 |
                        |                                 |
                  +-----+-------+                 +-------+-------+
                  |             |+                |               |
                  |   ClassA    +++---------------+    ClassB     |
                  |             |+  <<has a>>     |               |
                  +-------------+                 +---------------+

但我不确定这个模型是否正确。我如何改进/修复这个模型?

1 个答案:

答案 0 :(得分:0)

看到模型我理解这一点:

public class ClassA implements IClass {/* class implementation here */}
public class ClassB implements IClass {
    public ClassA a; //Or private field with getter and setter.
    /* rest of class implementation */
}

如果这是你的代码,那么模型是100%好的。

另外(因为UML的目标是更好地理解)如果ClassB使用ClassA字段作为帮助来实现IClass接口(通过委托一些方法),那么你可以在UML注释中注意到。

相关问题