Maison > Java > javaDidacticiel > Objets de référence d'élément via leurs interfaces

Objets de référence d'élément via leurs interfaces

Linda Hamilton
Libérer: 2024-10-25 09:42:02
original
368 Les gens l'ont consulté

Item  Referencie os objetos através das interfaces deles

Préférence pour les interfaces comme types de référence :
Si une interface appropriée existe, vous devez référencer les objets via celle-ci au lieu de la classe concrète.
Cela s'applique aux paramètres, aux valeurs de retour, aux variables et aux champs.

Flexibilité dans l'utilisation des interfaces :
L'utilisation d'interfaces vous permet de modifier l'implémentation sans affecter le code.
Exemple : passer de LinkedHashSet à HashSet ou TreeSet, changez simplement le constructeur.

Quand NE PAS utiliser les interfaces :
Fonctionnalité spécifique à l'implémentation :
Si une implémentation propose quelque chose qui n'est pas requis par l'interface (par exemple, LinkedHashSet garantit l'ordre d'itération, mais pas HashSet).

Sans interface appropriée :
Certaines classes comme String ou BigInteger n'ont pas d'interfaces équivalentes et doivent être utilisées directement.

Cadres basés sur les classes :
Exemple : OutputStream dans le package java.io est référencé via une classe abstraite, pas une interface.

Méthodes spécifiques à la mise en œuvre :
Exemple : PriorityQueue implémente Queue, mais possède une méthode comparator() non présente dans Queue. N'utilisez la classe que si vous avez besoin de cette méthode supplémentaire.

Avantage :
L'utilisation d'interfaces rend le programme plus flexible et modulaire, vous permettant de modifier facilement les implémentations sans casser le code existant.

Exemples de code
Bon exemple : utiliser l'interface comme type

Set<String> s = new LinkedHashSet<>();

Copier après la connexion

Mauvais exemple : Utiliser la classe concrète comme type

LinkedHashSet<String> s = new LinkedHashSet<>();

Copier après la connexion

Flexibilité : Changer l'implémentation sans affecter le code

Set<String> s = new TreeSet<>();

Copier après la connexion

Exemple d'utilisation d'une classe finale comme String

String str = "Hello";

Copier après la connexion

Exemple d'utilisation d'une classe de base du framework

OutputStream output = new FileOutputStream("file.txt");

Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal