dot Net Frameworks中常见的设计模式

响应一下Anders Liu的号召(http://www.cnblogs.com/AndersLiu/archive/2007/05/29/763456.html),列几个自己经常遇到的实现

 
SINGLETON:System.DBNull.Value

FACTORY METHOD:System.Data.IDbConnection.CreateCommand ()、System.Data.IDbCommand.ExecuteReader

ABSTRACT FACTORY:System.Data.IDbConnection(IDbConnection.CreateCommand是工厂方法,IDbConnection接口是个抽象工厂)

PROTOTYPE:ICloneable.Clone ()


COMPOSITE:System.Xml.XmlNode派生层次结构、System.Forms.Windows.Control派生层次结构

DECORATOR:System.Forms.Windows.Form派生层次结构、System.Forms.Windows.Control派生层次结构

PROXY:System.Runtime.Remoting.Proxies.RealProxy

COMMAND:System.Data.IDbCommand

ITERATOR:System.IEnumerable

MEDIATOR:System.Forms.Windows.Form(所有子控件的中间人)

Memento:System.Drawing.Drawing2D.GraphicsState类,System.Drawing.Graphics.Save和Restore方法
OBSERVER:System.Delegate

STRATEGY:System.Array.BinarySearch (Array array, object value, IComparer comparer)


TEMPLATE METHOD:System.Collections.CollectionBase.Contains(object item)

VISITOR:System.Data.IDataRecord算是半个吧,起码实现了Double dispatch


非GoF的设计模式
Null Object: System.EventArgs.Empty、Guid.Empty

Disopse:System.IDisposable(这个似乎是微软自封的,其实就是C++的析构函数的部分代用品)

Double Dispatch:System.Data.IDataRecord和.net frameworks的基本数据类型

posted on 2007-05-30 19:08  omnislash  阅读(1075)  评论(5编辑  收藏  举报