首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

使用可擴展物件模式擴展 HttpApplication

     編輯:關於ASP.NET

問題:Application_Start 膨脹違反 OCP

MVC 路由註冊、WF 執行緒啟動、Unity 容器初始化……所有框架初始化代碼堆疊在 Application_Start,任一變更皆需修改此方法,違反開放封閉原則。

解決:提供擴展點,讓模組自行掛載

定義 IHttpApplicationExtension 介面,各框架實作並註冊。HttpApplication 啟動時遍歷擴展集合呼叫初始化,新增框架零修改 Global.asax。

核心結構

public interface IHttpApplicationExtension
{
    void Initialize(HttpApplication app);
}

public class HttpApplicationExtender
{
    private readonly List<IHttpApplicationExtension> extensions = new List<IHttpApplicationExtension>();
    public void Add(IHttpApplicationExtension ext) { extensions.Add(ext); }
    public void InitializeAll(HttpApplication app)
    {
        foreach(var ext in extensions) ext.Initialize(app);
    }
}

Global.asax 僅需:

protected void Application_Start()
{
    new HttpApplicationExtender()
        .Add(new MvcRouteRegistrar())
        .Add(new WorkflowRuntimeStarter())
        .Add(new UnityContainerInitializer())
        .InitializeAll(this);
}

新框架只需實作 IHttpApplicationExtension 並加入擴展清單,互不干擾,符合 OCP。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved