摘要:可以对比某个类库如包和某个框架如加强理解一框架与类库的区别结构上,框架内部是高内聚的,而类库内部则是相对松散的。下图描述了类库框架和应用之间的层次关系。
可以对比某个类库如utils包和某个框架如mybatis加强理解
一、 框架与类库的区别
1、结构上,框架内部是高内聚的,而类库内部则是相对松散的。
2、框架封装了处理流程的控制逻辑,而类库几乎不涉及任何处理流程和控制逻辑。
正是由于框架对处理流程的控制逻辑进行了封装,才使得框架成为一个应用的骨架。框架中的处理流程和控制逻辑需要经过精心的设计,因为所有使用了该框架的应用程序都会复用该设计。
3、框架具有IOC(控制反转)能力,而类库没有。
IOC,即俗称的好莱坞模式(Don’t call us, we will call you)。对于类库中的元素来说,通常都是由我们的应用来调用它;而框架具有这种能力――在适当的时候调用我们应用中的逻辑。这种能力是通过框架扩展点(或称为“插槽”)来做到的――具体的应用通过扩展点注入自己的逻辑,而在适当的时候,框架会调用这个扩展点中已注册的逻辑。实际上,.NET中的事件(event)发布、预定机制就是IOC的一个代表性例子。
4、框架专注于特定领域,而类库却是更通用的。
框架着力于一个特定领域的解决方案的完整表达,而类库几乎不针对任何特定领域。比如,本书中提到的通信框架只适用于需要在TCP/UDP基础上直接构建通信的应用程序,而像正则表达式这样的类库却可以使用在各种不同的应用中。
5、框架通常建立在众多类库的基础之上,而类库一般不会依赖于某框架。
二、通用框架与应用框架
如果要对框架进行进一步分类,则可以根据框架针对的领域是否具有通用性而将它们分为通用框架(General Framework)和应用框架(Application Framework)。通用框架可以在不同类型的应用中使用,而应用框架只被使用于某一特定类型的应用中。、
比如,ORM框架NHibernate就是一个通用框架,该框架可以用于所有需要解决O/R映射的各种类型的应用中。而某个金融框架则是一个应用框架,它仅仅被用于金融类型的应用中。
可以这么说,通用框架所解决的是所有类型的应用都关心的“普遍”问题,而应用框架解决的是某一特定类型的应用关心的问题。所以,如果我们需要将某种类型的应用的核心业务逻辑流程提升到一个框架中,所得到的这个框架就是一个应用框架。与通用框架相比,应用框架需要了解更多目标业务领域内的领域知识。
在实现具体的应用程序时,可以采用一个应用框架与多个通用框架相结合的方式,这样有利于快速、高质量的应用程序开发。比如,某个金融领域的一个应用,可以采用金融框架作为应用框架来解决与金融业务逻辑相关的问题,采用Nhibernate解决数据访问,采用ESFramework解决应用中各分布式系统之间的通信。
下图描述了类库、框架和应用之间的层次关系。
框架和类库的区别
当然,一个应用也可以完全不采用任何框架,而是直接从最基础的底层API(如.NET Framework)开始构建。对于微型的系统,这种方式或许可行。但对于复杂大型的应用,困难度就可想而知了。
参考:https://blog.csdn.net/qq_3264...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75455.html
摘要:简介注解用于修饰的方法,根据的的内容,通过适当的转换为客户端需要格式的数据并且写入到的数据区,从而不通过视图解析器直接将数据响应给客户端。并且这些解析器都实现了接口,在接口中有四个最为主要的接口方法。 SpringMVC 细节方面的东西很多,所以在这里做一篇简单的 SpringMVC 的笔记记录,方便以后查看。 Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本...
摘要:相比于开发人员的数量,目前框架类库和工具的数量似乎更多一些。本文将会讨论目前最为流行的客户端框架类库和工具以及它们之间的基本差异。典型的类库包括字符串处理日期元素事件动画网络请求等功能。所以不需要明确的区分类库框架和工具。 相比于JavaScript开发人员的数量,目前JavaScript框架、类库和工具的数量似乎更多一些。截至2017年5月,GitHub上的快速搜索显示,有超过110...
摘要:常用的类库有插件把项目中某一部分进行插件分装,具备具体的业务逻辑,有针对性。常用的组件有组件框架比上面的三个都要庞大。它不仅提供了很多常用的方法,而且也可以支持一些插件的扩展可以把一些插件集成到框架中运行,提供了非常优秀的代码管理设计思想。 类库:提供了一些真实项目开发中常用的方法,这些方法做了一些完善处理,比如兼容处理、细节优化等,方便我们开发和维护。常用的类库有:JQuery、Ze...
摘要:目前已经在大大小小多个线上产品中使用了,也收集了一些有效的建议好了,该看下一个最简单的组件长什么样吧免费领取验证码内容安全短信发送直播点播体验包及云服务器等套餐更多网易技术产品运营经验分享请访问网易云社区。文章来源网易云社区 本文由作者郑海波授权网易云社区发布。 此文摘自regularjs的指南, 目前指南正在全面更新, 把老文档的【接口/语法部分】统一放到了独立的 Reference...
阅读 2961·2021-10-11 10:58
阅读 1929·2021-09-24 09:47
阅读 488·2019-08-30 14:19
阅读 1635·2019-08-30 13:58
阅读 1423·2019-08-29 15:26
阅读 626·2019-08-26 13:45
阅读 2106·2019-08-26 11:53
阅读 1747·2019-08-26 11:30