类库和框架之间有什么区别

Pet*_*der 16 frameworks class-library

我一整天听到了类库,基类库,框架,......
什么突出了框架和什么是基类库?

小智 22

类库和软件框架之间的区别在于,在框架中,控制流程不是由用户代码决定的,而是由框架决定的.

这也被称为好莱坞原则(不要打电话给我们,我们称之为你).

顺便说一句,关于这个主题的维基百科也有一篇很好的 文章.


Sma*_*ery 13

在编写代码时使用类库,但是框架编写代码.

术语"框架"旨在唤起"在一个环境中"的感觉.如果我要对它进行(有限的)类比,我会说一个类库就像能够吃奶酪和喝葡萄酒,而框架就像访问法国; 体验文化.框架是构建程序的结构.类库是您使用的工具(可能在框架内).

当然,框架通常包含类库.例如,.NET有很多类库,它们包含在整个框架中.


Dur*_*n.H 9

图书馆:

这仅仅是一个集合例程(函数式编程)或类定义(面向对象编程).背后的原因只是代码重用,即获取已由其他开发人员编写的代码.类或例程通常在特定于域的区域中定义特定操作.例如,有一些数学库可以让开发人员只需调用函数而无需重做算法如何工作的实现.

框架:

在框架中,所有的控制流都已存在,并且我们应该用我们的代码填写一堆预定义的白点.框架通常更复杂.它定义了一个框架,应用程序定义了自己的特征以填充框架.通过这种方式,适当时框架将调用您的代码.好处是开发人员不需要担心设计是否良好,而只需要实现特定于域的功能.

库,框架和您的代码图像表示:

库,框架和您的代码图像关系

KeyDifference:

库和框架之间的关键区别是"控制反转".当您从库中调用方法时,您就可以控制它.但是使用框架,控件被反转:框架会调用你.资源.

关系:

它们都定义了API,用于程序员使用.将这些组合在一起,我们可以将库视为应用程序的某个功能,将框架视为应用程序的框架,API是将这些组合在一起的连接器.典型的开发过程通常从框架开始,并通过API填写库中定义的函数.

原始答案


Gis*_*shu 6

一个类库通常是一个DLL或类的包,你可以"包含" /"参考"到您的解决方案和重用.

框架通常是一个反复出现的图案/溶液瞄准往特定的上下文例如GUI框架.一个框架通常意味着您根据框架设计者的要求编写某些部分,将它们放在预期/正确的位置并且它应该工作.

  • 例如,Spring是DI的框架.您以设计者指定的格式编写xml文件,然后框架允许您获取已组装的类,而无需担心框架是否这样做.
  • Rails是用于RAD网络应用程序的Ruby框架.您只需编写模型,控制器和视图,并且您可以在一小时内找到可用的Web应用程序.
  • BCL是一组类库,因此您不必在.NET中实现数据结构和常用类型,只需包含它们即可免费获得经过测试的成熟实现.

框架通常包含多个类库.与往常一样,这些术语现在以模棱两可的方式使用..但上面代表了对术语的更常见的解释......我的至少:)


Mor*_*075 5

通常,您使用库来获取OWN软件/基础架构中的某些功能.例如,打印条形码,您将使用库来执行此操作.框架抽象出一大类问题,也许是编写Web应用程序的问题.为此,框架提供了"框架",其中包含您可以编程的所有功能和存根.