提供程序模式是一个简单的模式,主要是为了减少代码复用而提高代码重用率而设计的模式,只在.Net框架中提供。ProviderBase是.Net提供的基础类. 它其实是继承的一种变体,从xml中读取各种继承的类的名字,从而一起调用一个基类方法实现不同类的同一行为。
下面是一个例子,用于得到不同酒店的价格。
public abstract class HotelProviderBase : ProviderBase
{
int RunId;
void setProxy(String proxy){}
public abstract void UpdateHotels(JobRequest request, int runId);
}
public sealed class ExampleHotelProvider : HotelProviderBase
{
private void UpdateHotel(JobRequest request){}
}
public abstract class HotelProviderManager
{
private static void LoadProviders()
{
//load class from hotel.xml
_providers = new HotelProviderCollection();
ProvidersHelper.InstantiateProviders(section.Providers, _providers, typeof(HotelProviderBase));
}
}
public sealed class HotelManager
{
public void onRun()
{
foreach (HotelProviderBase provider in HotelProviderManager.Providers)
{
if (provider.Enabled)
{
provider.UpdateHotels(request, (int)Log.RunId);
}
}
}
}
hotel.xml
<add name="ExampleHotelProvider"
type="ExampleHotelProvider"
siteId="4"
siteName="http://www.example.com"
tableName="HotelRates_Example_Hotels">
http://www.cnblogs.com/webabcd/archive/2007/01/22/626479.html
No comments:
Post a Comment