类库(架包)与框架的区别

能够对比某个类库如utils包和某个框架如mybatis增强理解正则表达式

1、 框架与类库的区别mybatis

一、结构上,框架内部是高内聚的,而类库内部则是相对松散的。框架

二、框架封装了处理流程的控制逻辑,而类库几乎不涉及任何处理流程和控制逻辑。
正是因为框架对处理流程的控制逻辑进行了封装,才使得框架成为一个应用的骨架。框架中的处理流程和控制逻辑须要通过精心的设计,由于全部使用了该框架的应用程序都会复用该设计。分布式

三、框架具备IOC(控制反转)能力,而类库没有。
IOC,即俗称的好莱坞模式(Don’t call us, we will call you)。对于类库中的元素来讲,一般都是由咱们的应用来调用它;而框架具备这种能力――在适当的时候调用咱们应用中的逻辑。这种能力是经过框架扩展点(或称为“插槽”)来作到的――具体的应用经过扩展点注入本身的逻辑,而在适当的时候,框架会调用这个扩展点中已注册的逻辑。实际上,.NET中的事件(event)发布、预约机制就是IOC的一个表明性例子。spa

四、框架专一于特定领域,而类库倒是更通用的。
框架着力于一个特定领域的解决方案的完整表达,而类库几乎不针对任何特定领域。好比,本书中提到的通讯框架只适用于须要在TCP/UDP基础上直接构建通讯的应用程序,而像正则表达式这样的类库却可使用在各类不一样的应用中。.net

五、框架一般创建在众多类库的基础之上,而类库通常不会依赖于某框架。hibernate

2、通用框架与应用框架设计

若是要对框架进行进一步分类,则能够根据框架针对的领域是否具备通用性而将它们分为通用框架(General Framework)和应用框架(Application Framework)。通用框架能够在不一样类型的应用中使用,而应用框架只被使用于某一特定类型的应用中。、blog

好比,ORM框架NHibernate就是一个通用框架,该框架能够用于全部须要解决O/R映射的各类类型的应用中。而某个金融框架则是一个应用框架,它仅仅被用于金融类型的应用中。事件

能够这么说,通用框架所解决的是全部类型的应用都关心的“广泛”问题,而应用框架解决的是某一特定类型的应用关心的问题。因此,若是咱们须要将某种类型的应用的核心业务逻辑流程提高到一个框架中,所获得的这个框架就是一个应用框架。与通用框架相比,应用框架须要了解更多目标业务领域内的领域知识。

在实现具体的应用程序时,能够采用一个应用框架与多个通用框架相结合的方式,这样有利于快速、高质量的应用程序开发。好比,某个金融领域的一个应用,能够采用金融框架做为应用框架来解决与金融业务逻辑相关的问题,采用Nhibernate解决数据访问,采用ESFramework解决应用中各分布式系统之间的通讯。

下图描述了类库、框架和应用之间的层次关系。

732ae6134d1081067080a&690
框架和类库的区别

固然,一个应用也能够彻底不采用任何框架,而是直接从最基础的底层API(如.NET Framework)开始构建。对于微型的系统,这种方式或许可行。但对于复杂大型的应用,困难度就可想而知了。

参考:https://blog.csdn.net/qq_3264...

相关文章
相关标签/搜索