2013-05-11 71 views
0

我需要模拟这样的事情,建模构图和暴露内部接口

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>>  |    | 
        +-------------+     +---------------+ 

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

回答

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%确定。如果ClassB使用ClassA字段作为帮助程序来实现IClass接口(通过委托某些方法),那么你可以在UML注释中注意到这一点。