10

拡張メソッドをC#のデコレータパターンの実装と見なすことができるかどうか疑問に思いましたか?目的は同じですが、実装のロジックと概念が異なる可能性があるためですか?

ありがとう!

4

2 に答える 2

10

デコレータパターンは通常、他のインスタンスとは関係なく、あるタイプの特定のインスタンスに動作を追加することに関連付けられています。拡張メソッドの場合、同じスコープでコンパイルされるタイプのすべてのインスタンスに影響します。それはデコレータパターンの一部ではないと私は主張します。

于 2013-03-04T21:25:28.007 に答える
9

デコレータパターンを正しく理解していなかったと思います。新しいメソッド
を追加することではありません。これは、既存のメソッドに新しい機能を追加することです。

したがって、いいえ、Extensionメソッドはデコレータパターンの実装ではありません。

于 2013-03-04T21:25:52.733 に答える