.NET Frameworkで使われているデザインパターン
http://msdn.microsoft.com/msdnmag/issues/05/07/DesignPatterns/
.NET FrameworkやASP.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