摘要:可以對比某個類庫如包和某個框架如加強理解一框架與類庫的區(qū)別結構上,框架內部是高內聚的,而類庫內部則是相對松散的。下圖描述了類庫框架和應用之間的層次關系。
可以對比某個類庫如utils包和某個框架如mybatis加強理解
一、 框架與類庫的區(qū)別
1、結構上,框架內部是高內聚的,而類庫內部則是相對松散的。
2、框架封裝了處理流程的控制邏輯,而類庫幾乎不涉及任何處理流程和控制邏輯。
正是由于框架對處理流程的控制邏輯進行了封裝,才使得框架成為一個應用的骨架??蚣苤械奶幚砹鞒毯涂刂七壿嬓枰涍^精心的設計,因為所有使用了該框架的應用程序都會復用該設計。
3、框架具有IOC(控制反轉)能力,而類庫沒有。
IOC,即俗稱的好萊塢模式(Don’t call us, we will call you)。對于類庫中的元素來說,通常都是由我們的應用來調用它;而框架具有這種能力――在適當?shù)臅r候調用我們應用中的邏輯。這種能力是通過框架擴展點(或稱為“插槽”)來做到的――具體的應用通過擴展點注入自己的邏輯,而在適當?shù)臅r候,框架會調用這個擴展點中已注冊的邏輯。實際上,.NET中的事件(event)發(fā)布、預定機制就是IOC的一個代表性例子。
4、框架專注于特定領域,而類庫卻是更通用的。
框架著力于一個特定領域的解決方案的完整表達,而類庫幾乎不針對任何特定領域。比如,本書中提到的通信框架只適用于需要在TCP/UDP基礎上直接構建通信的應用程序,而像正則表達式這樣的類庫卻可以使用在各種不同的應用中。
5、框架通常建立在眾多類庫的基礎之上,而類庫一般不會依賴于某框架。
二、通用框架與應用框架
如果要對框架進行進一步分類,則可以根據(jù)框架針對的領域是否具有通用性而將它們分為通用框架(General Framework)和應用框架(Application Framework)。通用框架可以在不同類型的應用中使用,而應用框架只被使用于某一特定類型的應用中。、
比如,ORM框架NHibernate就是一個通用框架,該框架可以用于所有需要解決O/R映射的各種類型的應用中。而某個金融框架則是一個應用框架,它僅僅被用于金融類型的應用中。
可以這么說,通用框架所解決的是所有類型的應用都關心的“普遍”問題,而應用框架解決的是某一特定類型的應用關心的問題。所以,如果我們需要將某種類型的應用的核心業(yè)務邏輯流程提升到一個框架中,所得到的這個框架就是一個應用框架。與通用框架相比,應用框架需要了解更多目標業(yè)務領域內的領域知識。
在實現(xiàn)具體的應用程序時,可以采用一個應用框架與多個通用框架相結合的方式,這樣有利于快速、高質量的應用程序開發(fā)。比如,某個金融領域的一個應用,可以采用金融框架作為應用框架來解決與金融業(yè)務邏輯相關的問題,采用Nhibernate解決數(shù)據(jù)訪問,采用ESFramework解決應用中各分布式系統(tǒng)之間的通信。
下圖描述了類庫、框架和應用之間的層次關系。
框架和類庫的區(qū)別
當然,一個應用也可以完全不采用任何框架,而是直接從最基礎的底層API(如.NET Framework)開始構建。對于微型的系統(tǒng),這種方式或許可行。但對于復雜大型的應用,困難度就可想而知了。
參考:https://blog.csdn.net/qq_3264...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/75455.html
摘要:簡介注解用于修飾的方法,根據(jù)的的內容,通過適當?shù)霓D換為客戶端需要格式的數(shù)據(jù)并且寫入到的數(shù)據(jù)區(qū),從而不通過視圖解析器直接將數(shù)據(jù)響應給客戶端。并且這些解析器都實現(xiàn)了接口,在接口中有四個最為主要的接口方法。 SpringMVC 細節(jié)方面的東西很多,所以在這里做一篇簡單的 SpringMVC 的筆記記錄,方便以后查看。 Spring MVC是當前最優(yōu)秀的MVC框架,自從Spring 2.5版本...
摘要:相比于開發(fā)人員的數(shù)量,目前框架類庫和工具的數(shù)量似乎更多一些。本文將會討論目前最為流行的客戶端框架類庫和工具以及它們之間的基本差異。典型的類庫包括字符串處理日期元素事件動畫網絡請求等功能。所以不需要明確的區(qū)分類庫框架和工具。 相比于JavaScript開發(fā)人員的數(shù)量,目前JavaScript框架、類庫和工具的數(shù)量似乎更多一些。截至2017年5月,GitHub上的快速搜索顯示,有超過110...
摘要:常用的類庫有插件把項目中某一部分進行插件分裝,具備具體的業(yè)務邏輯,有針對性。常用的組件有組件框架比上面的三個都要龐大。它不僅提供了很多常用的方法,而且也可以支持一些插件的擴展可以把一些插件集成到框架中運行,提供了非常優(yōu)秀的代碼管理設計思想。 類庫:提供了一些真實項目開發(fā)中常用的方法,這些方法做了一些完善處理,比如兼容處理、細節(jié)優(yōu)化等,方便我們開發(fā)和維護。常用的類庫有:JQuery、Ze...
摘要:目前已經在大大小小多個線上產品中使用了,也收集了一些有效的建議好了,該看下一個最簡單的組件長什么樣吧免費領取驗證碼內容安全短信發(fā)送直播點播體驗包及云服務器等套餐更多網易技術產品運營經驗分享請訪問網易云社區(qū)。文章來源網易云社區(qū) 本文由作者鄭海波授權網易云社區(qū)發(fā)布。 此文摘自regularjs的指南, 目前指南正在全面更新, 把老文檔的【接口/語法部分】統(tǒng)一放到了獨立的 Reference...
閱讀 3597·2021-10-11 10:58
閱讀 2090·2021-09-24 09:47
閱讀 572·2019-08-30 14:19
閱讀 1854·2019-08-30 13:58
閱讀 1503·2019-08-29 15:26
閱讀 688·2019-08-26 13:45
閱讀 2204·2019-08-26 11:53
閱讀 1831·2019-08-26 11:30