web-dev-qa-db-fra.com

Classe vs package vs module vs composant vs conteneur vs service vs plateforme dans Java world

Je suis novice dans le monde Java (7 ans de niveau C bas)).

Quand j'ai commencé à lire Java sites connexes:

J'ai confondu avec la terminologie existante:

  • classe
  • paquet
  • module
  • composant
  • récipient
  • un service
  • cadre
  • plate-forme

J'ai trouvé de nombreuses ressources sur la définition des termes (et beaucoup plus):

mais chacune de ces ressources les définit sur son propre but et je ne peux toujours pas distinguer par exemple le module du composant dans le cas général.

Veuillez expliquer quels sont les moyens de ces termes dans leur ensemble (peut être une plate-forme à classe unique, la quantité de modules nécessaires pour fabriquer un conteneur, etc.).

MISE À JOUR 2019 À partir de https://www.artima.com/lejava/articles/reuse3.html (ma mise en évidence)

Bill Venners: Quelle est la différence entre un framework, une plateforme et une boîte à outils, et quels sont les différents besoins de flexibilité?

Erich Gamma: Avec une plate-forme j'associe la stabilité à long terme . Il est sûr de construire au-dessus d'une plate-forme. Une plateforme offre des garanties de compatibilité . Les cadres n'ont souvent pas cette qualité et j'ai vu de nombreux échecs du cadre en ce qui concerne la stabilité . Si vous regardez Eclipse, oui, il comprend des cadres, des boîtes à outils et fournit des API de plate-forme. Tout cela est fourni sous forme de plug-ins. Les cadres abstraits et fournissent des fonctionnalités par défaut de niveau supérieur . Pour ce faire, le framework doit être sous contrôle . Cette perte de contrôle peut conduire à ce qu'on appelle parfois une frameworkitis.

Bill Venners: Et les boîtes à outils ne le font pas parce que ...

Erich Gamma: Avec toolkits vous créez et appelez des objets toolkit et enregistrez les écouteurs pour réagir aux événements . Vous êtes aux commandes . Les cadres essaient de garder le contrôle et vous disent quand faire quoi . Une boîte à outils vous donne les blocs de construction mais vous laisse le soin de être en contrôle.

Une autre citation répond à ma question naïve de savoir combien de classes font de quelque chose un cadre:

https://www.artima.com/lejava/articles/reuse.html

Erich Gamma: ... JUnit est un petit framework, par exemple. C'est le "Hello, world" des frameworks. Vous avez Test, TestCase, TestSuite et des relations définies. En outre, vous vous connectez aux cadres en sous-classant quelque part. Ils utilisent le soi-disant principe hollywoodien de "ne nous appelez pas, nous vous appellerons". Le cadre vous permet de définir votre comportement personnalisé, et il vous rappellera quand ce sera votre tour de faire quelque chose. Même chose avec JUnit, non? Il vous rappelle quand il veut exécuter un test pour vous, mais le reste se fait dans le framework.

44
gavenkoa

class Une classe est le modèle de création d'objets dans une programmation orientée objet basée sur une classe; vous devez apprendre les bases de OOP et comprendre ce qu'est un objet, ce qu'est une classe, ce qui est l'héritage, le polymorphisme, l'encapsulation avant d'apprendre quoi que ce soit d'autre sur Java.

package Un package est un espace de noms; il vous permet de gérer les conflits de noms. Il vous permet essentiellement d'avoir deux classes nommées Employé, si elles sont dans des packages différents.

module Cela fait probablement référence à la façon dont Java sont distribuées et utilisées - JAR, WAR, EAR.

component Peut être considérée comme la classe de base de l'interface graphique dans AWT (ou JComponent dans Swing) ou peut être considérée comme un type d'EJB - un POJO (Plain Old Java Object) qui répond à certaines exigences, il est possible d'avoir d'autres significations et dépend du contexte.

container Dans les applications d'entreprise, vous utilisez évidemment certaines bibliothèques et Java EE éventuellement; le problème avec la bibliothèque Java EE est qu'elle ne fournit que les Interface API et non implémentation. Ensuite, l'application que vous avez écrite et construite est déployée sur un serveur container fourni avec l'implémentation de l'API Java EE. Il existe deux types des conteneurs: conteneurs Web (vient uniquement pour la mise en œuvre de technologies spécifiques au Web) et conteneurs complets Java EE) (livrés avec la mise en œuvre du Web et d'autres Java EE) - services de nommage, persistance, transactions, etc.).

service Il n'y a pas de signification particulière en Java. Il peut être lié aux services Web qui fournissent essentiellement une approche de haut niveau de la communication inter-processus sur le réseau.

platform Il n'y a pas de signification particulière en Java; il peut être considéré comme la plate-forme de développement sous-jacente (Windows, Linux) ou avec la tendance du cloud, il peut se référer à Platform-as-a-Service où le fournisseur de cloud fournit l'infrastructure et d'autres logiciels de base (OS, base de données, conteneur).

41
m3th0dman
  • Classe:
    c'est normal Java qui a l'extension .Java et qui contient tous les objets, méthodes ou etc qui sont nécessaires pour faire une application et implémente ou étend un autre objet ou une méthode à partir d'autres fichier.

  • Package: C'est un tas de fichiers de classe (.Java) qui sont séparés par leur fonction ou leur nom. il est donc également utile de nommer.

  • Module: Les grandes applications sont généralement construites en plusieurs parties, qui sont plus étroitement connectées les unes aux autres qu'à l'extérieur. Par conséquent, on voudrait donner à ces parties plus d'accès les unes aux autres que le monde extérieur. On peut également souhaiter que ces pièces soient réutilisées à de nombreux points du système sans se soucier de la synchronisation des données partagées. cette partie est appelée module en Java. WAR, jar etc sont appelés module en langage Java.

  • Composant: Un composant est une partie identifiable d'un programme ou d'une construction plus vaste. Habituellement, un composant fournit une fonction particulière ou un groupe de fonctions connexes. Dans la programmation orientée objet et la technologie d'objets distribués, un composant est un bloc de construction de programme réutilisable qui peut être combiné avec d'autres composants dans le même ordinateur ou d'autres ordinateurs dans un réseau distribué pour former une application. Un composant s'exécute dans un contexte appelé conteneur.

  • Container: Un composant s'exécute dans un contexte appelé conteneur. Le conteneur est un composant important des applications Web en technologie Java Java EE). Il est responsable de la maintenance les composants individuels côté serveur, qui incluent Java servlets, Java pages du serveur (JSP) et Java faces du serveur) (JSF). La manière dont les services seront fournis et accessibles est déterminée par un contrat, qui est un accord entre l'application Web et le conteneur. Cela offre une sécurité considérable dans le Java EE car les applications clientes ignorent l'existence du conteneur et ne sont donc pas accessibles directement. Par conséquent, le conteneur Web est responsable de l'initialisation des composants d'application Web et de l'appel des requêtes client sur les composants.

  • Service: Le service est une évolution de l'informatique distribuée basée sur le paradigme de conception de demande/réponse pour les applications synchrones et asynchrones. La logique métier ou les fonctions individuelles d'une application sont modularisées et présentées comme des services pour des applications client/client.

  • Framework: Les frameworks imposent une structure définie au code qui les utilise, contrairement aux bibliothèques. Dans le logiciel, le framework est un ensemble de logiciels réutilisables qui forme la base d'une application. Frameworks aide les programmeurs à créer rapidement l'application. Auparavant, il était très difficile de développer des applications Web complexes. Il est désormais très facile de développer une telle application en utilisant différents types de frameworks tels que Struts, Struts 2, Hibernate, JSF, Spring, etc.

  • Plate-forme: La plate-forme fait référence à l'ensemble de l'environnement de développement et d'exécution Java de Sun. Java sont exécutés par un moteur d'exécution (le Java Virtual Machine) qui réside dans l'ordinateur cible. Puisque Java contient son propre environnement d'exploitation, il a été surnommé une "plate-forme" contrairement à d'autres programmes) langages qui, une fois compilés, s'exécutent par eux-mêmes. Voir Java, Java 2, Java Machine virtuelle et Java Environnement d'exécution) .

30
Angel