2009-02-10 6 views
1

DUPE: Private vs. Public members in practice (how important is encapsulation?)protégé/privé - pourquoi s'embêter?

Au cours de l'écriture d'un programme en Java, j'ai abstraire quelques bibliothèques que je peux voir une utilisation possible dans des projets futurs.

Pourquoi devrais-je prendre la peine de définir un accès restreint (privé/protégé) sur l'une de ces méthodes?

Il me semble que cela va compliquer ma vie à l'avenir. Si j'utilise le public sur tout, je n'aurai jamais besoin de m'inquiéter de savoir si je peux appeler quelque chose d'une autre classe. Je n'ai jamais vu de cas dans aucun de mes codes où il était logique que j'utilise autre chose que public.

Est-ce si mauvais d'utiliser 'public' sur tout? Est-ce que je vais être frappé par les dieux Java?

+0

@Rich B: réponse supprimée. –

Répondre

11

Oui, il est faux d'utiliser le public sur tout. Cela signifie que vous n'avez absolument aucun concept de la différence entre "ce membre fait partie d'une API publique, vous devez être capable de l'utiliser du monde extérieur, et il ne devrait pas changer" et "ce membre est une implémentation Si je veux le changer plus tard, je peux le faire parce que je ne sais rien du monde extérieur. Avoir une séparation claire entre l'API et la mise en œuvre est important pour la flexibilité et la clarté de l'OMI.

+0

Jon Skeet recommence. +1 – Syntax

+0

Ceci est une excellente explication. Merci beaucoup. –