.Net Framework源代碼中的模式——前言
隨著Visual Studio 2008的發布,微軟根據MS-RL協議向開發人員提供了.NET Framework的源代碼,包括基礎類庫 (BCL)、 ASP.NET、 WinForms和WPF等代碼。.NET Framework是.NET平臺的基礎架構,都開放源代碼,為開發人員更加深入研究.NET 技術細節提供了極大便利,也為開發人員如何構建一個優秀的軟件開發框架提供了很好借鑒。
構建一個優秀的軟件開發框架,必然會使用設計模式。.NET Framework作為一個優秀的軟件開發框架,設計模式無處不在,通過分析這些代碼,為我們正確使用設計模式提供很大幫助。
首先理解框架和模式的相關概念。
框架:在特定領域基于體系結構的可重用的設計。
模式:解決某一類問題的方法論。Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重復相同的工作。
為什么要用框架。
因為軟件系統發展到今天已經很復雜了,特別是服務器端軟件,設計到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就相當于讓別人幫你完成一些基礎工作,你只需要集中精力完成系統的業務邏輯設計。而且框架一般是成熟,穩健的,他可以處理系統很多細節問題,比如,事物處理,安全性,數據流控制等問題。還有框架一般都經過很多人使用,所以結構很好,所以擴展性也很好,而且它是不斷升級的,你可以直接享受別人升級代碼帶來的好處。框架一般處在低層應用平臺(如J2EE、.NET)和高層業務邏輯之間的中間層。
為什么要用模式。
因為模式是一種指導,在一個良好的指導下,有助于你完成任務,有助于你作出一個優良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。
框架與設計模式之間的關系。
設計模式和框架在軟件設計中是兩個不同的研究領域。設計模式研究的是一個設計問題的解決方法,一個模式可應用于不同的框架和被不同的語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體雖然它們有所不同,但卻共同致力于使人們的設計可以被重用,在思想上存在著統一性的特點,因而設計模式的思想可以在框架設計中進行應用。
框架和設計模式存在著顯著的區別,主要表現在二者提供的內容和致力應用的領域:
1. 從應用領域上分,框架給出的是整個應用的體系結構;而設計模式則給出了單一設計問題的解決方案,并且這個方案可在不同的應用程序或者框架中進行應用。
2. 從內容上分,設計模式僅是一個單純的設計,這個設計可被不同語言以不用方式來實現;而框架則是設計和代碼的一個混合體,編程者可以用各種方式對框架進行擴展,進而形成完整的不同的應用。
3. 設計模式比框架更容易移植。框架一旦設計成形,雖然還沒有構成完整的一個應用,但是以其為基礎進行應用的開發顯然要受制于框架的實現環境;而設計模式是與語言無關的,所以可以在更廣泛的異構環境中進行應用。
總之,框架是軟件,而設計模式是軟件的知識體,提升框架的設計水平。
留言列表