Java世界中的类,包,模块,组件,容器,服务,平台

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

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

  • [HTTP://wiki.API design.org/wiki/main_Page]
  • [HTTP://static.spring source.org/spring/docs/3.1.小/spring-framework-reference/HTML/]

我对现有术语感到困惑:

  • 模组
  • 零件
  • 容器
  • 服务
  • 构架
  • 平台

我发现了许多有关术语定义的资源(还有更多):

  • 框架与工具包与库
  • 框架和容器之间的区别?
  • Java中的容器是什么
  • Java容器的定义
  • [http://martinfowler.com/articles/injection.html](控制容器的反转和依赖注入模式)
  • [http://www.cafeaulait.org/course/week8/36.html](什么是AWT容器?)
  • [HTTP://恩.Wikipedia.org/wiki/Web_container]
  • [http://netbeans.org/features/platform/](NetBeans平台)
  • “应用程序框架”是什么意思?
  • 什么是软件框架?
  • 框架和库之间有什么区别?
  • 类库和框架有什么区别
  • [HTTPS://stack overflow.com/questions/11576018/what-is-他和-difference-between-啊-JavaScript-framework-安定-啊-library]
  • 框架和工具包之间的主要区别是什么?
  • [HTTP://blog.order harmony.com/2011/07/libraries-vs-frameworks.HTML]
  • [HTTP://呜呜呜.Java code geek是.com/2012/04/frameworks-vs-libraries-阿斯-inheritance.HTML]
  • 库,平台和框架之间的区别?
  • 平台和框架之间有什么区别?
  • 框架和平台有什么区别
  • 模块,库和框架之间的区别

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

请从总体上解释这些术语的含义(可以是一个平台类,制造一个容器需要多少模块,等等)。

更新自[https://www.artima.com/lejava/articles/reuse3.html](突出显示)

Bill Venners:框架,平台和工具包之间有什么区别,灵活性需求有哪些不同?

Erich Gamma:借助平台,我可以实现长期稳定性。 在平台之上构建是安全的。 平台可以保证兼容性。 框架通常没有这种质量,我已经看到许多框架在稳定性方面的失败。 如果您查看Eclipse,是的,它包括框架,工具箱,并提供平台API。 所有这些都作为插件捆绑在一起。 框架抽象并提供更高级别的默认功能。 为此,需要控制框架。 这种失控可能导致有时被称为框架炎。

Bill Venners:工具包不是因为...

Erich Gamma:使用工具箱,您可以创建和调用工具箱对象,并注册侦听器以对事件做出反应。 一切尽在您的掌控之中。 框架试图控制并告诉您何时执行操作。 工具包为您提供了构建基块,但让您自行控制。

另一段引文回答了我幼稚的问题:多少个类使某个框架成为一个框架:

[HTTPS://呜呜呜.阿瑞提马.com/了Java/articles/reuse.HTML]

Erich Gamma:例如,... JUnit是一个小型框架。 它是框架的“世界,你好”。 您有TestTestCaseTestSuite及其定义的关系。 同样,您可以通过在某个地方进行子类化来加入框架。 他们使用好莱坞的“不给我们打电话,我们给你打电话”的原则。 该框架允许您定义自定义行为,并且在轮到您做某事时会回叫您。 与JUnit相同,对吗? 当它想为您执行测试时,它将回叫您,但其余的工作在框架中完成。

2个解决方案
42 votes

platform类是在基于类的面向对象编程中创建对象的蓝图。 在学习有关Java的任何其他知识之前,您应该学习OOP的基础知识并了解什么是对象,什么是类,什么是继承,多态性,封装。

platform包是名称空间; 它让您处理命名冲突。 如果它们在不同的程序包中,则基本上可以让您拥有两个名为Employee的类。

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

platform可被视为AWT(或Swing中的JComponent)中GUI的基类,或被视为EJB的一种-满足某些要求的POJO(普通Java对象)。 可能有其他含义,并取决于上下文。

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

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

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

m3th0dman answered 2020-07-12T15:45:43Z
30 votes
  • 类:
    它是具有.java扩展名的普通Java文件,它包含制作应用程序所需的所有对象,方法等,还可以从其他文件中实现或扩展其他对象或方法。

  • 包:这是一堆class(.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运行时环境。

Angel answered 2020-07-12T15:46:43Z
translate from https://stackoverflow.com:/questions/13157377/class-vs-package-vs-module-vs-component-vs-container-vs-service-vs-platform-in-j