Parfois, en utilisant mixin avec un héritage multiple peut nous aider à améliorer la réutilisabilité de notre code.
Par exemple, le modèle suivant
class FollowableMixin(object):
def get_followers(self):
...
...
class User(FollowableMixin):
...
peut être mieux réutilisé que de simplement ajouter get_followers
a User
:
class User(object):
def get_followers(self):
...
...
parce que plus tard, nous pourrions envisager de soutenir d'autres entités à suivre qui sont des clients potentiels de get_followers
:
class BookStore(FollowableMixin):
...
Toutefois, si ce modèle est trop utilisé, le code peut devenir trop complexe.
class User(FollowableMixin, RunnableMixin, FlyableMixin, WhatMixin ...):
...
Avec toutes ces classes mixines injectant des propriétés et des méthodes à votre classe, il devient très difficile de comprendre votre code. Par exemple, vous ne savez pas d'où vient la méthode que vous appelez, et cette méthode peut à son tour inclure une invocation d'une méthode dans une autre mixine ...
Que dois-je faire pour simplifier ce programme ?