Java世界中的类vs包与模块vs组件与容器vs服务与平台[关闭]

问题描述 投票:43回答:2

我是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一样,对吗?当它想要为你执行测试时它会回调你,但其余的都是在框架中完成的。

java java-ee architecture terminology enterprise
2个回答
41
投票

class类是在基于类的面向对象编程中创建对象的蓝图;在学习Java的其他任何内容之前,你应该学习OOP的基础知识,理解对象是什么,类是什么,什么是继承,多态,封装。

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

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

component可以被视为AWT(或Swing中的JComponent)中GUI的基类,或者可以看作是一种EJB - 一种满足某些要求的POJO(普通旧Java对象);它可能具有其他含义并取决于背景。

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

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

platform Java中没有特殊含义;它可以被视为底层开发平台(Windows,Linux)或云趋势,它可以指平台即服务,其中云提供商附带基础设施和其他基本软件(操作系统,数据库,容器)。


30
投票
  • 类: 它是普通的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运行时环境。
© www.soinside.com 2019 - 2024. All rights reserved.