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 plutôt que via 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. Utilisez la classe uniquement 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
Sets = new LinkedHashSet();
Mauvais exemple : utiliser la classe concrète comme type
LinkedHashSets = new LinkedHashSet();
Flexibilité : modifier l'implémentation sans affecter le code
Sets = new TreeSet();
Exemple d'utilisation d'une classe finale comme String
String str = "Hello";
Exemple d'utilisation d'une classe de base de framework
OutputStream output = new FileOutputStream("file.txt");
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3