325 votes

Devrait les méthodes d'une interface Java être déclarée avec ou sans modificateur d'accès public?

Devrait les méthodes d'une interface Java être déclarée avec ou sans l' public modificateur d'accès?

Techniquement, il n'a pas d'importance, bien sûr. Une méthode d'une classe qui implémente une interface toujours public. Mais quelle est la meilleure convention?

Java lui-même n'est pas cohérent dans ce. Voir, par exemple, Collection vs Comparableou Future vs ScriptEngine.

356voto

Jon Skeet Points 692016

Le JLS est clair à ce sujet:

Il est permis, mais déconseillé comme une question de style, d'assurer la redondance de spécifier l' public et/ou abstract modificateur pour une méthode déclarée dans une interface.

47voto

Rasmus Faber Points 24195

Le public modificateur doit être omis dans les interfaces de Java (à mon avis).

Depuis, il n'a pas à ajouter toute information supplémentaire, il attire tout l'attention loin de la substance importante.

La plupart de style-guides vous recommandons de le laisser sortir, mais bien sûr, la chose la plus importante est d'être cohérent dans l'ensemble de votre base de code, et en particulier pour chaque interface. L'exemple suivant pourrait facilement confondre quelqu'un, qui n'est pas 100% fluide en Java:

public interface Foo{
  public void MakeFoo();
  void PerformBar();
}

5voto

JeeBee Points 11882

J'écris toujours ce que je pourrais utiliser si il n'y a pas d'interface et j'ai écrit une mise en œuvre directe, c'est à dire, je voudrais utiliser public.

5voto

PhiLho Points 23458

Je voudrais éviter de mettre les modificateurs sont appliqués par défaut. Comme l'a souligné, il peut conduire à des incohérences et de la confusion.

Le pire que j'ai vu est une interface avec les méthodes déclarées abstract...

5voto

cretzel Points 5411

J'ai utilisé déclarer les méthodes avec l' public modificateur, car elle rend le code plus lisible, surtout avec la coloration syntaxique. Dans notre dernier projet, nous avons utilisé Checkstyle qui affiche un message d'avertissement avec la configuration par défaut de public des modificateurs sur les méthodes d'interface, donc je suis passé à ommitting.

Donc je ne suis pas vraiment sûr de ce qui est le mieux, mais une chose que je n'aime vraiment pas utilise public abstract sur les méthodes d'interface. Eclipse n'parfois, lors d'un refactoring avec "Extrait de l'Interface".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X