首页 > 新闻系统 > 编程天地 > 文章正文

.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模式的特点:

st04.gif

    虽然在.Net2.0中,IConfigurationSectionHandler类型的对象已经被ObsoleteAttribute设置为废弃,而被ConfigurationSection的实现所代替,但这种设计思想仍然是值得借鉴的。

9 7 3 1 2 3 4 4 8 :

相关文章:

    无相关新闻
    无相关新闻

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203