2013-01-15 43 views
3

我已閱讀「設計模式」一書中的四人幫,該框架影響應用程序的整體架構。現在我知道例如使用.NET時,您需要從System.Windows.Form繼承來創建表單(雖然我認爲我在這裏有一個很大的誤解,)。但任何人都可以使用任何框架在代碼中描述框架如何影響應用程序體系結構?框架如何影響應用程序的結構?

回答

1

大約有話題了一些有趣的筆記Wikipedia

軟件框架由凍點和熱點組成。凍結 斑點定義了軟件系統的整體架構(...)。 這些在 應用程序框架的任何實例化中保持不變(凍結)。熱點代表那些使用框架的程序員添加他們自己的代碼(...)的部分。

據此,您的應用程序可以由您正在使用的框架來定義。例如,在使用Struts框架的Java World中,意味着您使用的是MVC architecture,或者使用Spring Framework強制您應用Dependency Injection Pattern。如果軟件架構是由軟件模式定義的,那麼一些框架是預先構建的模式供您使用。另一方面,沒有任何軟件應用程序僅由Patterns/Frameworks製作,而Hot Spots是有用的:它們是Software Frameworks提供的擴展/使用框架功能並根據你的要求和領域。

例如,假設您正在使用Spring MVC Framework構建Web應用程序。在項目中配置Framework之後,您的應用程序的每個請求都將被委派給一個名爲DispatcherServlet的類。這個類是內置在框架中,你不應該修改它,所以它是一個凍結點的完美例子。 DispatcherServlet將查找您的項目配置並將請求處理委託給ControllerController通常是由程序員製作的類,並負責處理請求。所以你的手工製作的控制器,它是一個熱點爲你擴展框架。

而DispatcherServlet是Front-Controlller Patttern的實現,並且Controller的使用是典型的MVC應用程序;所以你的應用程序被你正在使用的框架高度定義。

+0

我更關心凍結點如何限制你。 –

+0

我添加了一個例子,使其更加清晰 –

0

在不同框架中傳遞,存儲或評估數據的方法有多種。如果您使用的是Windows窗體應用程序,則可以從項目的任何位置訪問您的視圖元素,因爲它們全部位於計算機的本地內存中,而不在其他位置。

但是,如果您使用的是ASP.NET應用程序,那麼消費項目,客戶端和服務器的方面會有所不同,而且事情會變得更加複雜。你所做的設計幾乎沒有什麼共同的形式。

如果您使用的是ASP.NET MVC應用程序,則有三個層次:ModelViewController,並且操作分爲這些層次,從現在開始,您需要以適合這些層次的方式進行設計。你有MVC提供的數據庫表 - 對象關係,可以完全改變設計。

另外編程語言躺在程序下改變設計,因爲它可以是功能性的,等

總之面向對象的,這不是一個問題建設性。在使用不同的編程語言和技術之後,你會找出這個問題的答案。

+0

正如我在問題中所解釋的那樣,我想知道框架如何影響應用程序,我相信它有一個很深的一面,那就是我想知道的。我不希望埃裏克伽瑪不小心拋出這樣的話。無論如何,我認爲你誤解了我的問題先生,不過謝謝你。 –

1

我必須說一個乾淨的架構(也稱爲設計模式)並不依賴於正在使用的框架,工具包或庫。體系結構描述了軟件系統(層和層)的高層結構,而不是詳細描述它是如何實現的。它是一組幫助我們實現安全性,可用性,可擴展性,可靠性,可用性,可用性等特定目標的原則。讓我們看一個簡單的示例:

模型視圖控制器(MVC)是一個軟件體系結構(或設計模式)將域的建模,表示和基於用戶輸入的操作分爲三個獨立的類。 MVC背後的核心思想是代碼的可重用性和關注點的分離。您可以使用多種編程語言或類似ASP.Net MVC,Java的支柱,PHP乾燥,CakePHP的框架應用MVC ....

+0

假設您設計了一個框架,您的框架可能會影響您的框架用戶如何構建其應用程序的方式? ASP.NET MVC強制你遵循MVC模式,但這並不意味着你不能在ASP.NET中應用MVC,對吧? –

相關問題