IREX - BONNES PRATIQUES JAVA (1)

Nous allons voir dans cet article pourquoi un fichier java doit contenir un seul concept

 · 4 min read



1. Introduction

La réalisation de projet en java nécéssite la connaissance non seulement du langage, mais aussi des bonnes pratiques de développement lié a celui-ci. Lorsqu'il s'agit d'écrire du code Java bien structuré, la question de la séparation des concepts dans différents fichiers de code est cruciale. Cette approche correspond à la convention largement acceptée dans l'écosystème Java, mais souvent, comprendre pourquoi cette approche est recommandée est tout aussi important que de savoir comment l'appliquer.


2. Définition des termes et expressions

Un fichier java est un format de fichier texte brut d’extension ".Java" contenant un code source d’un programme, écrit dans le langage de programmation Java. Les fichier java sont utilisés par un compilateur pour créer des fichiers de classe java ".Class". Lors de la compilation d’un fichier Java, celui-ci créé pour chaque classe qu’il contient un fichier de classe java.

Une classe est le support de l'encapsulation : c'est un ensemble de données et de fonctions regroupées dans une même entité. Une classe est une description abstraite d'un objet. Les fonctions qui opèrent sur les données sont appelées des méthodes. Instancier une classe consiste à créer un objet sur son modèle. Entre classe et objet, il y a, en quelque sorte, le même rapport qu'entre type et variable.

Une interface est un type abstrait utilisé pour déclarer un comportement que les classes doivent implémenter, sans toutefois implémenter ce comportement.


3. Pourquoi un fichier java doit contenir un seul concept à la fois ?

a. Les conventions de Java sur la création des classes

Selon les conventions de nommage Java, une classe publique doit être définie dans un fichier portant le même nom que la classe.



Ainsi, en déclarant plusieurs classes dans un même fichier, une seule de ses classes peut être publique et donc l’accès aux autres classes sera limité. Car en java, les classes précédé du modificateur "public" sont visible de partout; par contre les classes sans modificateur ont la visibilité par défaut; ce qui signifie qu’elles ne peuvent être visibles que dans leur propre paquetage.

Si on veut enregistrer une "public class" de nom différent de celui du fichier qui le contient, on a une erreur :






b. Avantages

Le fait de créer pour chaque classe un fichier java a de nombreux avantages parmi lesquels:

  1. La clarté et la lisibilité du code
  2. L'un des principaux motifs derrière cette pratique est la clarté et la lisibilité du code. En gardant un concept (comme une classe ou une interface) par fichier, le code devient plus lisible et plus facile à comprendre. Cela permet de se concentrer sur un seul aspect du code à la fois, en réduisant la complexité de compréhension lors de la lecture et de la maintenance du code.
  3. Maintenabilité accrue
  4. La séparation des concepts en fichiers distincts facilite la recherche et la modification de code spécifique. Lorsque nous devons trouver ou modifier une classe particulière, nous pouvons nous tourner directement vers le fichier contenant cette classe, plutôt que de fouiller à travers un fichier contenant plusieurs concepts différents.
  5. Facilite la navigation/recherhe
  6. Il est plus facile de retrouver le .class d'un concept dans un .jar et le remplacer par un nouveau. Ça permet de faire des changements on the fly sur une application sans avoir à la rebuilder.
    On peut aussi plus facilement retrouver le concept avec les raccourcis de l'IDE. Sous Eclipse par exemple CTRL H ou CTRL ...
  7. Maintenabilité accrue
  8. La séparation des concepts en fichiers distincts facilite la recherche et la modification de code spécifique. Lorsque nous devons trouver ou modifier une classe particulière, nous pouvons nous tourner directement vers le fichier contenant cette classe, plutôt que de fouiller à travers un fichier contenant plusieurs concepts différents.
  9. Éviter les dépendances inutiles
  10. Un autre avantage est la réduction des dépendances inutiles entre les classes et les interfaces. En séparant chaque concept dans son propre fichier, vous assurez que chaque fichier est autonome et ne dépend que des concepts nécessaires pour son fonctionnement. Cela favorise un couplage plus faible entre les différentes parties du code.


4. Exception pour les enums

Les énumérations permettent de définir un ensemble fini de constantes, chacune d'entre-elles est séparée des autres par une virgule.
Contrairement aux classes et aux interfaces, les enums peuvent être définis dans un fichier dédié ou même à l'intérieur d'un autre concept; dans ce cas, la compilation créer le fichier ".class" de l'enum par extension de la classe dans laquelle il se trouve. Cette exception est due à la nature des enums, qui sont souvent étroitement associés à un type particulier et sont relativement simples en termes de complexité et de dimension.

La définition d'une énumération ressemble à celle d'une classe avec quelques différences :
• utilisation du mot-clé enum introduit spécifiquement dans ce but à la place du mot-clé class
• un ensemble de valeurs constantes définies au début du corps de la définition, chaque valeur étant séparée par une virgule
• par convention, le nom des constantes est en majuscule.



Une énumération peut prendre plusieurs formes et être enrichie de fonctionnalités puisqu'une énumération est une classe Java. Et tout comme les classes, un enum déclaré "public" à l'extérieur d'une classe support doit être déclaré dans un fichier du même nom.



Au cas contraire on obtient une erreur.





Merci de nous avoir suivies !!!


Voir aussi :


No comments yet

No comments yet. Start a new discussion.

Add Comment