Quelles sont les méthodes et mesures pour améliorer la réutilisabilité du code Java ? Ce qui suit explique trois mesures pour améliorer la réutilisabilité du code Java~
1. Remplacement des méthodes d'instance de classe
Réaliser la réutilisation du code via l'héritage de classe n'est pas une technique exacte de réutilisation du code, ce n'est donc pas le mécanisme de réutilisation du code le plus idéal. L'héritage apporte toujours des méthodes et des données membres redondantes, ce qui complique toujours le code qui réutilise une méthode dans une classe.
De plus, la dépendance de la classe dérivée à l'égard de la classe parent complique également davantage le code : les modifications apportées à la classe parent peuvent affecter la sous-classe, il nous est difficile de nous en souvenir lors de la modification de la classe parent ou de la classe parent ; sous-classe. Quelle méthode est remplacée par la sous-classe et quelle méthode n'est pas remplacée par la sous-classe ? Enfin, il n'est parfois pas évident que la méthode remplacée dans la sous-classe doit appeler la méthode correspondante dans la classe parent.
Toute méthode qui effectue la tâche d'un seul concept devrait, en elle-même, être le code réutilisable préféré. Afin de réutiliser ce type de code, nous devons revenir au modèle de programmation orienté procédure et déplacer les méthodes d'instance de classe vers des procédures globales.
Afin d'améliorer la réutilisabilité de ce type de procédure, le code de la procédure doit être écrit comme une méthode utilitaire statique : il ne peut utiliser que ses propres paramètres d'entrée, ne peut appeler que d'autres procédures globales et ne peut en utiliser aucune. variable non locale. Cette restriction sur les dépendances externes simplifie l'application des procédures, leur permettant d'être facilement utilisées n'importe où.
Bien sûr, puisque ce type d'organisation donne toujours au code une structure plus claire, même le code qui ne prend pas en compte la réutilisabilité peut quand même en bénéficier.
En Java, les méthodes ne peuvent pas exister indépendamment d'une classe. À cette fin, nous pouvons organiser les processus associés en classes indépendantes et définir ces processus comme des méthodes statiques publiques. Les classes jouent un rôle indispensable dans le processus d'organisation et d'encapsulation des membres des données d'objet. Les classes sont également implémentées via plusieurs interfaces. apporte un excellent support pour la réutilisation du code.
2. Choisissez le type d'interface de paramètre le plus simple
Plus l'interface requise pour décrire l'objet paramètre est simple, plus il y a de chances que d'autres classes implémentera l'interface. Plus la valeur est grande, plus il y a de classes dont les objets peuvent être utilisés comme paramètres. Cela peut être facilement vu à partir de l'exemple suivant :
static public boolean areOverlapping(Window window1, Window window2) {...}
Cette méthode est utilisée pour vérifier si deux fenêtres se chevauchent . Si cette méthode nécessite uniquement que les coordonnées rectangulaires des deux fenêtres soient obtenues à partir des paramètres, il est préférable de simplifier les deux paramètres en conséquence. Parfois, l'interface qui décrit les exigences des paramètres peut avoir trop de méthodes.
À ce stade, nous devrions définir une nouvelle interface publique dans l'espace de noms global pour la réutiliser par d'autres codes confrontés au même problème. Lorsque nous devons utiliser des paramètres tels que des pointeurs de fonction en langage C, la création d'une interface unique décrivant les exigences des paramètres est le meilleur choix. Par exemple, supposons le processus suivant :
static public void sort(List list, SortComparison comp) {...}
Cette méthode utilise la composition d'objet de comparaison fournie dans le paramètre et la compare to Trie les objets dans une liste donnée. La seule exigence de tri sur l'objet comp est d'appeler une méthode de comparaison, de sorte que l'interface SortComparison ne peut pas être réutilisée ailleurs.
3. Changer les types de paramètres en interfaces
Dans la programmation orientée objet, le véritable objectif de la réutilisation du code est d'utiliser plusieurs types de paramètres d'interface. L'état, plutôt que l'héritage de classe, nous permet de réutiliser le code en programmant des interfaces plutôt que des classes. Si tous les paramètres d'une méthode sont des références à une interface connue, alors cette méthode peut opérer sur des objets dont les classes n'existent même pas lorsque nous écrivons le code de la méthode. Techniquement, c'est la méthode qui est réutilisable, et non l'objet passé à la méthode.
Par exemple, supposons qu'il existe une telle méthode :
static public boolean areAnyOverlapping(Collection rects) {...}
Cette méthode est utilisée pour vérifier si Si l'un des objets rectangulaires se chevauche. Dans cette méthode, lorsque nous utilisons une boucle pour accéder à chaque objet de la collection dans l'ordre, si nous ne pouvons pas convertir l'objet dans un type d'interface tel que Rectangulaire, comment pouvons-nous accéder à la zone rectangulaire de l'objet ? La seule option consiste à convertir l'objet dans sa forme de classe unique, ce qui signifie que la méthode doit connaître à l'avance le type d'objet sur lequel elle opère, limitant ainsi la réutilisation de la méthode à ces types d'objet.
Pour des connaissances plus pertinentes, veuillez cliquer sur : tutoriel Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!