Dans le but de maximiser la réutilisation du code, j'ai créé une hiérarchie de classes assez complexe pour mon code Python. Cela ressemble à ceci:Simplification de la hiérarchie des classes complexes
class ElectionMethod
class IterativeMethod
class SNTV
...
class NonIterativeMethod
class OrderDependent
class CambridgeSTV
...
class OrderIndependent
class WIGM
class ERS97STV
...
class Recursive
class MeekSTV
...
Seules les feuilles de la hiérarchie de classe sont jamais instanciées dans des objets. Cela sert son but de maximiser la réutilisation du code, mais le code lui-même est compliqué (certaines classes ont une vingtaine de méthodes) et étant donné les nombreux niveaux, il peut être long de trouver où quelque chose est implémenté. J'ai essayé de sortir des blocs de fonctionnalité et de mettre cette fonctionnalité dans un objet séparé, mais je n'ai pas trouvé un bon moyen de le faire puisque presque toutes les fonctionnalités dépendent de données communes. Par exemple, je peux déplacer du code vers un objet différent, mais il doit se référer à la grande hiérarchie complexe pour obtenir les données dont il a besoin, donc ce n'est pas vraiment de l'encapsulation.
Quelqu'un a-t-il des conseils sur la façon de rendre cela plus gérable?
Il n'y a pas grand chose à dire sans connaître les détails du projet! Vous devez examiner attentivement la conception et déterminer ce qui doit être hérité de quoi. – katrielalex
Merci pour les suggestions. Je vais devoir regarder de plus près pour voir s'ils peuvent travailler pour moi. –