2016-12-03 17 views
-1

私は複合デザインパターンを研究しています。コンポジットパターンの葉がコンポーネント以外のクラスから継承できるかどうかを尋ねたがっていますか? Compositeパターンでオブジェクト指向分析とデザイン、デザインパターン

enter image description here

+0

誰かが答えますか? –

+0

なぜそれができませんでしたか?ほとんどのオブジェクト指向言語では、とにかく基本Objectクラスから継承します**。そして、それでもあなたのニーズにパターンを適応させるなら、あなたを刑務所に送り込むデザインパターンの警察はありません。 –

+0

図の "チーム"から "参加者"への矢印は、 "1つのチームに複数の参加者がいる"ため、チームを指している集計矢印(ダイヤモンド)である必要があります。 – Philipp

答えて

0

CompositeLeafは同じインタフェースComponentを実装します。それがパターンのポイントです。

目的は、複数Leaf S(又は複数のサブComposite S)からなるLeaf又はCompositeを扱うコード同じように書くことができることです。

あなたがインターフェイスをサポート(または抽象クラスの多重継承を持つ例えば、それらをシミュレートすることができます)オブジェクト指向言語を使用している、それは彼らがComponentインターフェイスを実装する方法のクラスLeafCompositeまでです。彼らは既にComponentを実装しているクラスから継承することでそうすることができます。あるいは、独自に実装することもできます。

0

コードヘルメットのThisを参照してください。これは、デザインパターンを実装した実際のサンプルで、葉のクラスがカプセル化して他のクラスから動作を分離できるようにする接着剤です。
このサンプルが私の考えを助けてくれることを願っています。
よろしく!

関連する問題