C#の第一級言語機能としてすでに実装されているGOF設計パターンはどれですか。


10

(この質問は、「広すぎる」および「本当の質問ではない」ため、Stack Overflowで締めくくられたため、ここでより適切でしょうか?)

この質問に触発されました。イベントは、Observerパターンの言語レベルの実装であることを知っています。C#の言語機能として実装されている他のデザインパターンはありますか?他の言語で実装されたデザインパターンはたくさんあるので、この質問はC#固有のままにしておきたいです。

BCLのパターン実装(多くのWCFクラスのデコレーターやのファクトリーメソッドなどWebClient)ではなく、言語レベルのパターンを探しています。

これまでのところ、オブザーバー(event)とイテレーター(foreach多くのBCLクラスおよびインターフェースとの組み合わせ)を認識しています。私が見逃している明らかなものはおそらく他にもあります。

回答:


1

デリゲートは事実上の戦略パターンです


面白いことに、昨日同僚がデリゲートはコマンドパターンの実装であると言っていました。あなたがそれをどのように見るかに依存します(afaikコマンドは引数もカプセル化する必要がありますが、引数のないメソッドの場合..)
stijn

1
デリゲートがコマンドパターンの実装であるとは言えません。少なくとも、デリゲートのみを使用して元に戻す/やり直しなどを実装する方法がわかりません。コマンドオブジェクトの一部である可能性がありますが、それは別の問題です
Homde

0

拡張メソッドは、Decoratorパターンを抽象化したものです。


あんまり。デコレーターを使用すると、実行時にオブジェクトを構成してデータと動作を追加できます。
マーティンDoms

1
確かに-実際のデコレータパターンほど有用ではありません。拡張メソッドによって解決される問題の多くは他の言語のデコレータパターンで解決されると言ったほうがいいでしょうか?
vstrien
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.