2010-09-27 22 views
1

Point 16 de Effective Java 2e édition, composition faveur de l'héritage dit ce qui suitAjout de nouvelles méthodes aux superclasses et aux problèmes qui en résultent - Probabilité?

« Si la superclasse acquiert une nouvelle méthode dans une version ultérieure et vous avez la malchance d'avoir donné la sous-classe une méthode avec la même signature et un autre type de retour, votre sous-classe ne sera plus compiler.

Si vous avez donné la sous-classe une méthode avec la même signature et le type de retour que la nouvelle méthode superclasse, alors vous surchargeons maintenant "

Quelle est la probabilité que ces cas surviennent dans une situation réelle? Quelqu'un pourrait-il me donner ici un exemple d'une application d'affaires réelle (dépouillant les informations propriétaires si nécessaire)?

+0

C'est subjectif. Si cela arrive, je dirais que c'est un mauvais design. –

+0

@Sagar V Comment est-ce subjectif? – helpermethod

+0

@Helper Méthode: Une telle situation du monde réel est subjective à de nombreuses conditions différentes. Manque de conception appropriée, exigences incomplètes, simplement malchance ou paresse :) –

Répondre

3

Il ne s'agit pas de la façon dont est ce scénario. (D'ailleurs, je suis sûr que vous avez entendu parler de Murphy's Law)

Il s'agit du fait que la composition est beaucoup moins d'un contrat de liaison que l'héritage. L'héritage est un moyen très efficace de lier un comportement entre des classes, et l'article 16 stipule que vous ne devez utiliser cette connexion forte que lorsqu'il est clair que cela est nécessaire. Pour toutes les autres utilisations, la composition devrait être préférée.