1

私が取り組んでいる実際の何かの代用として、モデルの構築を検討してください。モデルパーツを表すクラスがあり、Parts指定されたパラメータに基づいてパーツを製造したり、検証したりするためのメソッドが完備されてGlueいます。ほぼ同じことを行うModelBuilderクラスとクラスがあります。

接着剤や部品をカプセル化して製造できます。次に、myPartsInstanceGlueInstancemyModelBuilderをパラメーターとしてmyに渡します。ここですべてがバラバラになります。PartsModelBuilderにビルドするように指示することはできますが、そのためには、 (およびおそらく)のデータにアクセスする必要がありますGlue。たとえば、PartsInstance.Part[0]適切に構築するために、のコーナーまたは中心がどこにあるかを知る必要があるかもしれません。

私はここで困惑しています。なぜなら、Tell、Do n't Askキャンプは、パーツが何らかの形でそれ自体を構築する必要があると言うように思われるからです。しかし、それは私には意味がありません。一部はモデル全体ではなく一部です。それがそれ自体を構築する必要があります。はModelBuilder非常に複雑である可能性があり、Parts他の場所で使用される可能性があります。一方、私はPartsInstanceオブジェクトの状態を調べて、その状態に基づいて決定を下しています。さらに、決定はPartsとにかく概念の中にのみ適合するものではないかもしれません。Glueそれは私が選んだタイプを含むかもしれません。

カプセル化に違反しないように、この例を作成または作り直すにはどうすればよいですか?

4

0 に答える 0