0

Run()実装とインターフェイスが異なる 3 つのデバイスがあります。これらのデバイスには、他のサブシステムが含まれている場合や、他のデバイスが含まれている場合があります。

テンプレート複合パターンを使用する必要があることはわかっています。しかし、テンプレート パターンでは、デバイス クラスから device1 device2 と device3 を継承する必要があります。一方、複合パターンには、デバイス、CompositeDevice、およびサブシステム クラスがあります。

この 2 つのパターンを組み合わせることについて、私はかなり混乱しています。助言がありますか ?

4

1 に答える 1

0

http://en.wikipedia.org/wiki/Composite_patternから複合パターンを取得しましょう。Leaf と Composite はどちらも Component クラスを継承しています。次に、tamplate パターンと複合パターンを組み合わせるには、すべてのデバイスが Component クラス (リーフ クラス) を継承する必要があります。最後に、複合クラスはリーフ クラスを使用できます。

     Component   ----------
  ^   ^   ^    ^           |
  |   |   |    |           |
Dev1 Dev2 Dev3 Composite<>-|

Component クラスは、Run() 関数宣言を含むインターフェースです。

于 2013-08-11T15:25:13.677 に答える