は、印刷を行う、葉、およびその親TDを考える:葉の溶液は、両親が異なる2つに分かれていますか?
$parent = new Node('td');
$child = new Leaf('Text:', 'Value');
$parent->add($child);
$parent->print();
印刷要件:
sometimes <td>Text: Value</td>
sometimes <td>Text:</td><td>Value</td>
は、これまでのところ、私は3つのソリューションを構築し、どれもが私を満たしていない、私はもっとある1だろうOO?そして4番目の選択肢はありますか?
役に立つ説明、理解しようとしている。私はこれまでコントローラーを追加することを考えていましたし、階層からTDを削除することも考えました。これまでのところ、私はまだエレガントな、またはあなたの言葉でこの問題を解決するための方法を探しています – Edward
素晴らしい、あなたの答えは問題を明確にするのに役立ちます。各ノード/リーフはコンポジット・パターンを使用することで既に自分自身をどのようにプリントするかを知っており、プリント自体を処理します。しかし、問題の要件を満たすために、ノード/リーフはもはや第2の解決策では、親情報を知っている必要があります。第3の解決策では、親は子情報を知っていなければならない。どちらも追加的な依存を導入する。今私はどちらの解決策も私を快適にさせる理由を知っています。コントローラーを追加すると本当に脳の痛みを助けてくれないようです – Edward