3

複合デザイン パターン (または任意のグラフ/ノード タイプ システム) を実装している場合、ノードを接続し、クラス インスタンス間のリンクを作成するプロセスを最もよく表すデザイン パターンはどれですか?

私の現在の作業例では、ファクトリ パターンを使用して各クラス インスタンスを構築していますが、コードの別の領域で、またはファイルからのデータに基づいてそれらを接続することを検討しています。

おそらく「ビルダー」パターンではないかと思っていますが、私が見た例は非常に単純化されており、これらの例に基づいてパターンをドメインに適用するのは非常に簡単だと思います. おそらく、複合パターンを参照して、私のドメインにより適した別のパターンがあるでしょう。例と参考文献は大歓迎です。

どうもありがとうD

編集: もう少し調査した結果、作成パターンに関する素敵なブログが見つかりました。経験則として、「ビルダー」はしばしばコンポジットを構築すると彼らは言います。

http://sourcemaking.com/creational_patterns

4

1 に答える 1

1

一度に複合要素全体を構築したい場合は、builder が適しています。たとえば、都市の道路のグラフを作成し、都市全体を構築したい場合は、ビルダー パターンを使用します。ビルダーにサブビルダーを追加して近隣を追加することで、ビルダークラスが大きくなりすぎないようにすることができます.バルダーの合成を行うだけです. ただし、コンポジットが既に存在する後に要素を追加する場合は、次のことをお勧めします。要素を追加する場所がわかっている場合は、コンポジットにイテレータを提供し、追加したいインデックスまたは新しい場所でイテレータに add メソッドを提供できますあなたの要素。たとえば、ツリーをソートした場合、イテレータには関数 add があり、ツリー内の位置に従って要素を追加する場所を認識します。コンポジットに要素を追加する必要がある場合は、別のオプションがあります。たとえば、通りのある都市を建設し、最短の通りの隣に通りを追加したいとします。まあ、この場合、複合型の静的内部クラスになる述語または何らかの種類のフィルターを使用するでしょう。

于 2013-03-02T06:33:39.543 に答える