.Net中的设计模式——Strategy模式2008-04-14 11:11:08 来源:中国IT实验室 作者: 点击:
Stragety模式的应用极为广泛,在.Net Framework中自然不乏应用的例子。例如在.Net中,为集合类型Array和ArrayList提供的排序功能,其实现中就利用了Strategy模式。它是对比较算法进行了封装,定义了IComparer接口。 ![]() 具体类SqlMembershipProvider,它为SQL Server提供了Membership的管理。如果要为Membership提供对Oracle数据库的支持,我们可以自定义一个类继承MembershipProvider: public class OracleMembershipProvider:MembershipProvider { //实现略; } 在.Net Framework中,还有一个典型的Strategy模式的利用,就是接口IConfigurationSectionHandler: public interface IConfigurationSectionHandler { object Create(object parent, object configContext, XmlNode section); } 该接口中包含的方法只有一个,就是Create()方法,我们可以理解为创建配置节的一个算法,而实现该接口的类包括有DictionarySectionHandler、IgnoreSectionHandler、NameValueSectionHandler等等,分别对应各种配置节的创建类型。此外,我们还可以自己定义一个类,来实现该接口,例如: public class CustomHandler : IConfigurationSectionHandler { public object Create(object parent, object configContext, XmlNode section) { //实现略; } } 从类图中,我们可以看出,它非常符合Strategy模式的特点:
虽然在.Net2.0中,IConfigurationSectionHandler类型的对象已经被ObsoleteAttribute设置为废弃,而被ConfigurationSection的实现所代替,但这种设计思想仍然是值得借鉴的。 相关文章:
|