【发布时间】:2012-10-20 21:03:51
【问题描述】:
我是 Java 世界的新手(7 年的低级纯 C)。
当我开始阅读 Java 相关网站时:
- http://wiki.apidesign.org/wiki/Main_Page
- http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/
我对现有术语感到困惑:
- 类
- 包
- 模块
- 组件
- 容器
- 服务
- 框架
- 平台
我发现了很多关于术语定义的资源(以及更多):
- Framework vs. Toolkit vs. Library
- Difference between framework and container?
- What are the containers in Java
- Definition of a Java Container
- http://martinfowler.com/articles/injection.html(控制容器的反转和依赖注入模式)
- http://www.cafeaulait.org/course/week8/36.html(什么是 AWT 容器?)
- http://en.wikipedia.org/wiki/Web_container
- http://netbeans.org/features/platform/(NetBeans 平台)
- What is meant by "application framework"?
- What is a software framework?
- What is the difference between a framework and a library?
- What is the difference between a class library and a framework
- https://stackoverflow.com/questions/11576018/what-is-the-difference-between-a-javascript-framework-and-a-library
- What is the major difference between a framework and a toolkit?
- http://blog.orderharmony.com/2011/07/libraries-vs-frameworks.html
- http://www.javacodegeeks.com/2012/04/frameworks-vs-libraries-as-inheritance.html
- Difference between library, platform and framework?
- What is the difference between a platform and a framework?
- what is the difference between a framework and a platform
- Difference between a module, library and a framework
但是这些资源中的每一个都是根据自己的目的定义它们的,在一般情况下,我仍然无法区分例如模块和组件。
请在大图中解释这些术语的含义(可以是单一类平台,制作容器需要多少模块等)。
2019 年更新来自https://www.artima.com/lejava/articles/reuse3.html(我的突出显示)
Bill Venners:框架、平台和工具包之间有什么区别,不同的灵活性需求是什么?
Erich Gamma:我将平台与长期稳定性联系起来。在平台之上构建是安全的。平台提供兼容性保证。框架通常不具备这种品质,我已经看到许多框架在稳定性方面失败了。如果您查看 Eclipse,是的,它包括框架、工具包并提供平台 API。所有这些都捆绑为插件。 框架抽象并提供更高级别的默认功能。为此,需要控制框架。这种失控可能导致有时称为框架炎。
Bill Venners:工具包不是因为...
Erich Gamma:使用工具包,您可以创建和调用工具包对象并注册侦听器以对事件做出反应。您尽在掌控。 框架试图控制并告诉你什么时候该做什么。 工具包为您提供了构建块,但由您自己掌控。
另一个引文回答了我的幼稚问题,有多少类使某个东西成为框架:
https://www.artima.com/lejava/articles/reuse.html
Erich Gamma:...例如,JUnit 是一个小型框架。它是框架的“Hello, world”。您已定义
Test、TestCase、TestSuite和关系。此外,您可以通过在某处子类化来连接到框架。他们使用所谓的好莱坞原则“不要打电话给我们,我们会打电话给你”。该框架允许您定义您的自定义行为,并在轮到您做某事时回叫您。与 JUnit 一样,对吗?当它想为您执行测试时,它会回调您,但其余部分在框架中完成。
【问题讨论】:
-
嘿!停止关闭))
-
停止尝试理解并开始做。从 Java 教程开始,您将默认回答一些问题。其余的将随着经验而变得清晰
-
您是否想在没有特定项目和编写任何 Java 代码的情况下理解整个 Java 世界及其所有术语?您是否尝试过先阅读 Oracle Java 教程?
-
我编写 JNI 接口并发布了几个安全 Java 库,但它仅使用算法(if/for/while)Java 1.1 功能。没有任何企业...正如我写的那样,我阅读了几篇参考资料以避免编写愚蠢的代码。来JAVA EE世界好难。
-
我很欣赏您尝试做的事情,但是要求提供大量定义的请求确实不是 Stack Overflow 旨在处理的问题。如果您绝对必须询问,请至少为您需要定义的每个术语发布一个单独的问题,并解释您对该术语的已知了解(用您的话来说,而不仅仅是一个链接)。跨度>
标签: java jakarta-ee architecture terminology enterprise