0

私はこのようなものをモデル化する必要があります、

ClassA はインターフェイス IClass を実装します。

ClassB はインターフェイス IClass を実装します。

ClassA には ClassB (構成) があります。

しかし、ClassA のインターフェースは ClassB の同じインターフェースです。つまり、ClassB のインターフェースを ClassA のインターフェースとして公開する必要があります。このようにしましたが、

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

しかし、このモデルが正しいかどうかはわかりません。このモデルをどのように改善/修正できますか?

4

1 に答える 1

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% OK です。

さらに、(UML は理解を深めることを目的としているため) ClassB が ClassA フィールドをヘルパーとして使用して IClass インターフェイスを実装する場合 (いくつかのメソッドを委譲することによって)、UML ノートでそのことを指摘できます。

于 2013-05-14T12:05:44.803 に答える