我需要建模这样的东西,
ClassA实现接口IClass;
ClassB实现接口IClass;
ClassA有一个ClassB(组合);
但ClassA的接口与ClassB的接口相同,即我需要将ClassB的接口公开为ClassA的接口。我是这样做的,
+--------------+
| |
+--------> IClass <---------+
| | | |
| +--------------+ |<<implements>>
<<implements>>| |
| |
| |
+-----+-------+ +-------+-------+
| |+ | |
| ClassA +++---------------+ ClassB |
| |+ <<has a>> | |
+-------------+ +---------------+
但我不确定这个模型是否正确。我如何改进/修复这个模型?
答案 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注释中注意到。