框架和容器之间的区别?

时间:2011-09-05 15:52:34

标签: frameworks containers definition

我正在SO上阅读这个问题: Framework vs. Toolkit vs. Library 在哪里解释了框架和库之间的区别。一般意见认为,主要区别在于控制反转,因此您在框架中有热点,您可以在其中附加您的应用程序功能(实际上您可以选择继承/模板/重量级或组合/策略/轻量级来实现)。

好的,现在我很好奇框架和容器之间有什么区别呢?我看到了容器的定义(由Rod Johnson提供):“容器是应用程序代码/对象运行的框架”。这让我很困惑。我认为它或多或少是任何框架的定义:)我的意思是,如果你使用IoC作为参数,在库和框架之间产生差异(也就是你调用库,但框架调用你),那么这不是意味着更多或更少任何框架满足容器的上述定义?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为你正在混淆控制反转原理和IoC工具。

框架的主要特征是它遵循IoC原则并调用您的代码(如链接线程中所述)。 IoC容器只是一个工具,而不是一个完整的框架,可以帮助您按照IoC原则编写有凝聚力,松散耦合的代码。

一般情况下(至少在.Net中)一个类Container是此工具的基础,其中注册/解析/构建对象图等发生但我相信该名称是基于名称PicoContainer和Martin Fowlers文章的历史工件Inversion of Control Containers and the Dependency Injection pattern

答案 1 :(得分:1)

容器是完整的操作系统和代码包,它使用户或执行模型能够运行。框架包含特定过程所需的所有代码。(就像在 python 中,如果我们想创建火车测试数据集,我们有来自 sklearn 的内置代码)。

相关问题