"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Réflexion sur les objets et le livre

Réflexion sur les objets et le livre

Publié le 2024-08-20
Parcourir:484

Reflexão sobre itens e do livro

Abordons l'apparente contradiction entre les points 22 et 41 du livre :

Point 22 : « Si vous ne souhaitez pas définir de type, n'utilisez pas d'interface. »

Cet élément suggère que vous ne devez pas utiliser d'interfaces pour des éléments qui ne représentent pas un type réel ou une fonctionnalité concrète. Par exemple, utiliser une interface uniquement pour stocker des constantes n’est pas une bonne pratique. Les interfaces doivent être utilisées pour définir des contrats ou des comportements que les classes doivent implémenter.

Point 41 : « Si vous souhaitez vraiment définir un type, utilisez une interface. »

Cet élément parle de l'utilisation d'interfaces, en particulier d'interfaces de marqueurs, pour définir un type qui catégorise ou marque les classes d'une manière qui peut être vérifiée au moment de la compilation. Une interface de marqueur ne définit pas de méthodes, mais elle définit quand même un type logique qui peut être utilisé pour vérifier le comportement des classes au moment de la compilation.

Rapprochement des éléments

La clé pour comprendre les deux éléments réside dans la différence entre définir un type utile et utiliser une interface de manière appropriée.

  • L'élément 22 indique d'éviter d'utiliser des interfaces pour des éléments qui ne sont pas associés à une fonctionnalité ou à un comportement spécifique. L'idée est que les interfaces doivent être utilisées pour définir des contrats clairs que les classes doivent suivre.

  • L'article 41 recommande d'utiliser des interfaces (y compris des marqueurs) lorsque vous souhaitez définir un type qui catégorise ou marque les classes dans un but spécifique et qui peut être utilisé pour la vérification au moment de la compilation.

Application pratique
Élément 22 : Évitez ceci :

public interface Constants {
    String SOME_CONSTANT = "value";
    int ANOTHER_CONSTANT = 42;
}

Cela ne définit pas de type ou de comportement ; c'est juste un conteneur de constantes, ce qui constitue une mauvaise utilisation d'une interface.

Élément 41 : Utiliser les interfaces pour marquer un type :

public interface PhysicalProduct {
    // Interface marcadora sem métodos
}

public class Book implements PhysicalProduct {
    // Implementação da classe que indica que é um produto físico
}

Ici, l'interface PhysicalProduct définit un type logique qui peut être vérifié et utilisé à des fins spécifiques, telles que le calcul des frais d'expédition, garantissant que seuls les produits physiques sont pris en compte.

Conclusion
Les deux éléments se complètent en fournissant des conseils sur comment et quand utiliser les interfaces de manière appropriée. Le principe est que les interfaces doivent être utilisées pour définir des types significatifs et des contrats clairs, que ce soit via des méthodes qui définissent le comportement ou en tant que marqueurs qui catégorisent les classes de manière logique et utile.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/giselecoder/reflexao-sobre-itens-22-e-41-do-livro-3hh5?1 En cas de violation, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

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