
常用的是具体类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的实现所代替,但这种设计思想仍然是值得借鉴的。

