技术开发 频道

创建型模式篇-工厂方法模式(Factory Method)


1public interface IHttpHandlerFactory 2{ 3 // Methods 4 IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated); 5 void ReleaseHandler(IHttpHandler handler); 6} 7
IHttpHandlerFactory.GetHandler是一个工厂方法模式的典型例子,在这个应用中,各个角色的设置如下:

抽象工厂角色:IHttpHandlerFactory

具体工厂角色:PageHandlerFactory

抽象产品角色:IHttpHandler

具体产品角色:ASP.SamplePage_aspx

进一步去理解

    理解上面所说的之后,我们就可以去自定义工厂类来对特定的资源类型进行处理。第一步我们需要创建两个类去分别实现IHttpHandlerFactory 和IHttpHandler这两个接口

1public class HttpHandlerFactoryImpl:IHttpHandlerFactory { 2 3 IHttpHandler IHttpHandlerFactory.GetHandler( 4 HttpContext context, String requestType, 5 String url, String pathTranslated ) { 6 7 return new HttpHandlerImpl(); 8 9 }//IHttpHandlerFactory.GetHandler 10 11 void IHttpHandlerFactory.ReleaseHandler( 12 IHttpHandler handler) { /**//*no-op*/ } 13 14}//HttpHandlerFactoryImpl 15 16public class HttpHandlerImpl:IHttpHandler { 17 18 void IHttpHandler.ProcessRequest(HttpContext context) { 19 20 context.Response.Write("sample handler invoked"); 21 22 }//ProcessRequest 23 24 bool IHttpHandler.IsReusable { get { return false; } } 25 26}//HttpHandlerImpl 27
0
相关文章