2017-09-23 10 views
2

Conformément au principeInterface Principe Ségrégation et les méthodes par défaut en Java 8

Ségrégation Interface clients ne devraient pas être contraints de mettre en œuvre les méthodes non désirées d'une interface

et nous devons donc définir les interfaces d'une manière que les interfaces ont une séparation logique.

Mais le concept de méthode par défaut introduit dans Java 8 a fourni la flexibilité nécessaire pour fournir l'implémentation par défaut des méthodes dans les interfaces Java.

Il semble que Java 8 ait fourni la possibilité d'améliorer les interfaces pour avoir des méthodes non liées à sa logique de base mais avec une implémentation par défaut ou vide.

Cela ne viole-t-il pas le souci de séparation? Pensées?

Répondre

1

Bonne question. Certainement, cela viole le principe de ségrégation de l'interface et personnellement, je n'aime pas le concept de l'implémentation par défaut car cela gâche la beauté de la conception de l'interface et un peu le polymorphisme exact. Si quelqu'un n'est pas conscient du concept de FAI, alors il va commencer à concevoir des interfaces de graisse et finira comme tout emballé dans une interface. Pendant la conception du code, les gens ne pensent pas logiquement aussi. Cela va finir avec des odeurs de code et je suis sûr que ceux qui ne connaissent pas les concepts vont commencer à écrire du mauvais code. Je crois que la mise en œuvre par défaut est une fonctionnalité indésirable car elle incitera les gens à écrire du code malodorant.