建模构图和暴露内部接口
问题描述:
我需要模拟这样的事情,建模构图和暴露内部接口
ClassA实现接口IClass;
ClassB实现接口IClass; ClassA具有ClassB(组合); ClassA具有ClassB(组合); ClassA具有ClassB(组合); ClassA具有ClassB(组合); ClassA具有ClassB(组合)。
但是,ClassA的接口与ClassB的接口是相同的,即我需要将ClassB的接口公开为ClassA的接口。我这样做,
+--------------+
| |
+--------> IClass <---------+
| | | |
| +--------------+ |<<implements>>
<<implements>>| |
| |
| |
+-----+-------+ +-------+-------+
| |+ | |
| ClassA +++---------------+ ClassB |
| |+ <<has a>> | |
+-------------+ +---------------+
但我不确定这个模型是否正确。我如何改进/修复这个模型?
答
眼看模式,我明白这一点:
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%确定。如果ClassB使用ClassA字段作为帮助程序来实现IClass接口(通过委托某些方法),那么你可以在UML注释中注意到这一点。