54

我是 Java 世界的新手(7 年的低级纯 C)。

当我开始阅读 Java 相关网站时:

我对现有术语感到困惑:

  • 班级
  • 包裹
  • 模块
  • 零件
  • 容器
  • 服务
  • 框架
  • 平台

我发现了许多关于术语定义的资源(以及更多):

但是这些资源中的每一个都是根据自己的目的定义它们的,在一般情况下,我仍然无法区分例如模块和组件。

请在大图中解释这些术语的含义(可以是单一类平台,制作容器需要多少模块等)。

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”。您已定义TestTestCaseTestSuite关系。此外,您可以通过在某处子类化来连接到框架。他们使用所谓的好莱坞原则“不要打电话给我们,我们会打电话给你”。该框架允许您定义您的自定义行为,并在轮到您做某事时回叫您。与 JUnit 一样,对吗?当它想为您执行测试时,它会回调您,但其余部分在框架中完成。

4

2 回答 2

51

class 类是基于类的面向对象编程中创建对象的蓝图;你应该学习 OOP 的基础知识,了解什么是对象、什么是类、什么是继承、多态性、封装,然后再学习 Java 的任何其他知识。

package 一个包是一个命名空间;它让您处理命名冲突。它基本上让您有两个名为 Employee 的类,如果它们位于不同的包中。

module它可能指的是 Java 库的分发和使用方式——JAR、WAR、EAR。

component可以看成是 AWT 中 GUI 的基类(或者 Swing 中的 JComponent),也可以看成是 EJB 的一种类型——一种满足某些要求的 POJO(Plain Old Java Object);可能有其他含义,具体取决于上下文。

container在企业应用程序中,您显然最终会使用一些库和 Java EE;Java EE 库的问题在于它只提供 API 接口而不提供实现。然后,您编写和构建的应用程序被部署到一个container服务器中,该服务器附带了 Java EE API 的实现。有两种类型的容器:Web 容器(仅用于实现 Web 特定技术)和完整的 Java EE 容器(带有 Web 和其他 Java EE 技术的实现 - 命名服务、持久性、事务等)。

serviceJava中没有特殊含义。它可能与 Web 服务有关,Web 服务基本上提供了一种通过网络进行进程间通信的高级方法。

platformJava中没有特殊含义;它可以被看作是底层开发平台(Windows、Linux),或者随着云趋势它可以指平台即服务,云提供商提供基础设施和其他基础软件(操作系统、数据库、容器)。

于 2012-10-31T12:08:05.830 回答
32
  • 类:
    它是具有.java 扩展名的普通java 文件,它包含制作应用程序所需的所有对象、方法等,并且还从其他文件实现或扩展其他对象或方法。

  • 包: 它是一堆类(.java)文件,由它们的功能或名称分开。所以它也有助于命名。

  • 模块: 大型应用程序通常由多个部分构建,这些部分彼此之间的连接比与外部的连接更紧密。因此,人们希望让这些部分比外界更多地相互访问。人们可能还希望这些部分在系统中的许多点上重复使用,而不用担心共享数据的同步。这部分在java中称为模块。WAR、jar 等在 java 语言中被称为模块。

  • 组件: 组件是较大程序或结构的可识别部分。通常,一个组件提供一个特定的功能或一组相关的功能。在面向对象编程和分布式对象技术中,组件是可重用的程序构建块,可以与分布式网络中同一台或其他计算机中的其他组件组合形成应用程序。组件在称为容器的上下文中运行。

  • 容器: 组件在称为容器的上下文中运行。容器是基于Java 的Java EE 技术中Web 应用程序的重要组件。它负责维护服务器端的各个组件,包括 Java servlet、Java 服务器页面(JSP)和 Java 服务器面(JSF)。服务的提供和访问方式由合同决定,合同是 Web 应用程序和容器之间的协议。这在 Java EE 框架中提供了相当大的安全性,因为客户端应用程序不知道容器的存在,因此无法直接访问它。因此,Web 容器负责初始化 Web 应用程序组件并调用组件上的客户端请求。

  • 服务: 服务是分布式计算的演进,基于同步和异步应用的请求/回复设计范式。应用程序的业务逻辑或单独的功能被模块化并呈现为消费者/客户端应用程序的服务。

  • 框架: 框架对使用它们的代码强加了明确的结构,而库则没有。在软件中,框架是一组可重用的软件程序,构成应用程序的基础。框架帮助程序员快速构建应用程序。早些时候,开发复杂的 Web 应用程序非常困难。现在使用不同类型的框架(如 Struts、Struts 2、Hibernate、JSF、Spring 等)开发此类应用程序非常容易。

  • 平台: 平台是指来自 Sun 的整个 Java 开发和执行环境。Java 程序由驻留在目标计算机中的运行时引擎(Java 虚拟机)执行。由于 Java 包含自己的操作环境,因此它被称为“平台”,与其他一旦编译后自行运行的编程语言形成鲜明对比。请参阅 Java、Java 2、Java 虚拟机和 Java 运行时环境。

于 2012-10-31T12:35:54.480 回答