2010-09-02 4 views
2

J'ai lu que cela devrait être évité, bien que je ne me souvienne pas de la source. L'héritage devrait être utilisé avec les classes abstraites au milieu de la hiérarchie et les classes concrètes uniquement comme feuilles.Existe-t-il un principe de POO contre une classe concrète prolongeant une autre classe concrète?

Où puis-je trouver une bonne explication du raisonnement derrière cela? (Les opinions opposées sont également les bienvenues)

+1

Pouvez-vous s'il vous plaît pointer vers la source qui dit que cela devrait être évité? – Oded

+0

@Oded - c'est ce que j'essaie de découvrir. Je l'ai lu quelque part, et les arguments m'ont convaincu, seulement il y a quelque temps et je ne m'en souviens pas. – ripper234

+0

Assez juste - cependant, vous dites ceci comme une chose "connue". Je n'ai pas entendu parler d'un principe dans la POO qui stipule que l'héritage de classes concrètes est une mauvaise pratique. Si vous vous interrogez sur la validité de cette affirmation, c'est ce que vous devriez poser et non le raisonnement à l'appui de cette affirmation. – Oded

Répondre

1

Ceci ne doit pas être pris trop strictement. Je pense que l'idée sous-jacente est plus de se concentrer sur la programmation d'une interface, soit une interface pure ou une classe abstraite, car cela permet un couplage plus lâche de votre design, polymorphisme, encapsulation, ...

le Liskov substitution principle

Questions connexes