【问题标题】:STL library vs JCF frameworkSTL 库与 JCF 框架
【发布时间】:2012-04-06 09:42:53
【问题描述】:

为什么将 STL 视为库,而将 JCF 视为框架?在他们各自的设计中究竟是什么导致/证明了这种区别?你能举一个代码例子来说明这一点吗?

【问题讨论】:

  • 我认为,对于库,您的代码正在使用库,而对于框架,框架使用您的代码。大致。对于框架,您的代码必须适应框架,它必须适应框架并且主要限于框架支持的内容。
  • 如果我将比较器传递给std::sort,STL 不是也在使用我的代码吗?
  • 我不确定分界线到底在哪里。但这是控制反转程度的问题。使用std::sort,您只是自定义库函数的特定调用,而使用框架,您将覆盖“排序器”仿函数类中的一些比较器函数并创建该类的实例,有点?
  • Java 使用简单的Comparator 接口和compare 方法。您将实现该接口的类的对象传递给Collections.sort...我真的看不出任何概念上的区别。
  • 我相信“框架”在这里被用作流行语,framework 听起来比库设计更好,例如来自Oracle Site - ..the best-known examples of collections frameworks are the C++ Standard Template Library (STL) and Smalltalk's collection hierarchy 所以甚至 Oracle 也将 STL 视为“集合框架”。

标签: java c++ collections stl terminology


【解决方案1】:

Martin Fowler 的定义:

本质上是一组可以调用的函数,这些 天通常组织成类。每个电话都会做一些工作,并且 将控制权返回给客户端。

框架体现了一些抽象设计,构建了更多行为 为了使用它,您需要将您的行为插入到各种 通过子类化或插入你的 自己的课。然后框架的代码在这些地方调用你的代码 点。

您可以在此处找到更多讨论: What is the difference between a framework and a library?

【讨论】:

  • 你有一个例子,JCF 调用我的代码,但“等效”STL 例子没有?
猜你喜欢
  • 2011-04-09
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
相关资源
最近更新 更多