.NET Frameworkで使われているデザインパターン

http://msdn.microsoft.com/msdnmag/issues/05/07/DesignPatterns/

.NET FrameworkASP.NETで使用されているデザインパターンの紹介。
クラスライブラリで実際に使われてる例を通じてデザインパターンを学ぶのは、良い学習方法だと思う。

挙がっているのは、

Observer
Windows Form
Iterator
C#のforeach構文の裏で動いてるIEnumerableやIEnumerator
Decorator
System.IO.Streamの辺り。FileInputStreamにBufferedStreamやCryptoStreamを被せてもStreamとして扱える、とか。
Adapter
COMと.NETのコンポーネントの相互利用。
Factory
System.Net.WebRequest.Create(URI)。URIからHttpWebRequestなどの適切なサブクラスをインスタンス化して返す。
Strategy
IComparer.Compareを使用したArray.Sort。大小比較の基準だけ変えてQuickSortが出来る。
Composite
ここからASP.NET。Web.UI.ControlはComposite Patternそのまま。
Template Method
Custom Web ControlでRenderだけOverrideするとか。あと、ASP.NETのPipeline。これもパターンなのか。
Intercepting Filter
HttpApplicationがEventに応じてIHttpModuleをキックするところ。こんな名前のパターンってGoFにあったっけ?
Page Controller
System.Web.UI.Page。これも良く分からん。

結構いっぱいあるな。

関連ページ:
http://www.atmarkit.co.jp/fdotnet/designptn/index/index.html
http://www.microsoft.com/japan/msdn/security/guidance/secmod37.mspx#EAAA