質問

各製品についてのような関連したコスト計算があります。将来的には、商人、商人によってボーナス、毎月の割引などによって割引、割引は、より多くのコスト計算が追加されます。

私たちは、それぞれのコスト計算のための具体的な製品のクラスと多くのデコレータを持っています。電卓は、製品の商人のID、カテゴリID、色などのように、製品の性質によって、その計算を適用することを決定したため、すべての製品は、電卓のすべてを使用する必要があります。

そして、計算する必要が我々のシステムで何百万もの製品があります。だから、私たちはより良い装飾された電卓をキャッシュします。ので、実行時に各製品のエンティティを飾ることは高価です。しかし、これはDecoratorパターンでは困難です。私たちの状況でこのパターンを使用するように香りのように思えます。

あなたは何を勧めますか?私たちは、デコレーター、戦略やChain of Responsibilityパターンを使用する必要がありますか?またはNO-パターンます。

役に立ちましたか?

解決

  

すべての製品は、すべてを使用する必要があります   電卓、電卓理由   によって彼らの計算を適用することを決定   製品のような製品の性質   商人のID、カテゴリID、色など。

あなたはすべての製品は、あなたが本当にパターンから任意の利益を得ていない、すべてのデコレータを使用する必要がある場合。これは、あなたが新しいデコレータを実装する場合、すべての既存のエンティティがその新しいデコレータを使用するように更新されなければならないことを意味するのでしょうか?

デコレータは、必要なときのみの製品に適用されるべきである、と必要なものだけデコレータを適用する必要があります。

私はあなたがデコレーターの中から意思決定を削除するべきだと思います。何か他のものは、それが適切なデコレータで製品をラップした場合にデコレータを適用するかどうかを決定する必要があります。あなたは製品がデコレータに包まれている場合、そのデコレータが(影響を与える?)に影響されていることの製品を知っている。

この方法

他のヒント

ストラテジーパターンは、オブジェクトの変更の意図。

そこで、私は、戦略は良い選択だと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top