ConstructiCat Logo
CodeBust.
Browse section ▾

Dealing with Generalization.

Design Patterns Mascot
Réduire la hiérarchie

Problème : vous avez une hiérarchie de classes dans laquelle une sous-classe est pratiquement identique à sa superclasse. Solution : fusionnez la sous-classe et la superclasse.

001
Architectural Patterns Mascot
Extraire l'interface

Problème : plusieurs clients utilisent la même partie de l'interface d'une classe. Autre cas : une partie de l'interface est identique dans deux classes. Solution : déplacez cette portion identique dans sa propre interface.

002
Architectural Patterns Mascot
Extraire une sous-classe

Problème : une classe possède des fonctionnalités qui ne sont utilisées que dans certains cas. Solution : créez une sous-classe et utilisez-la dans ces cas.

003
Code Smells Mascot
Extraire une superclasse

Problème : Vous avez deux classes qui partagent des champs et des méthodes communs. Solution : Créez une superclasse commune pour elles et déplacez-y tous les champs et méthodes identiques.

004
Design Patterns Mascot
Constituer une méthode patron

Problème : Vos sous-classes implémentent des algorithmes qui contiennent des étapes similaires dans le même ordre. Solution : Déplacez la structure de l'algorithme et les étapes identiques vers une superclasse, et laissez l'implémentation des étapes différentes dans les sous-classes.

005
Refactoring Mascot
Remonter le corps du constructeur

Problème : vos sous-classes ont des constructeurs dont le code est en grande partie identique. Solution : créez un constructeur dans la superclasse et déplacez-y le code commun aux sous-classes. Appelez le constructeur de la superclasse dans les constructeurs des sous-classes.

006
Architectural Patterns Mascot
Remonter le champ

Problème : deux classes possèdent le même champ. Solution : supprimez le champ des sous-classes et déplacez-le vers la super-classe.

007
Design Patterns Mascot
Remonter une méthode

Problème : Vos sous-classes ont des méthodes qui effectuent un travail similaire. Solution : Rendez les méthodes identiques, puis déplacez-les vers la superclasse appropriée.

008
Code Smells Mascot
Descendre le champ

Problème : un champ n'est-il utilisé que dans quelques sous-classes ? Solution : déplacez le champ vers ces sous-classes.

009
Refactoring Mascot
Descendre la méthode

Problème : Un comportement implémenté dans une superclasse n’est-il utilisé que par une seule (ou quelques) sous-classe(s) ? Solution : Déplacez ce comportement vers les sous-classes.

010
Design Patterns Mascot
Remplacer la délégation par l’héritage

Problème : une classe contient de nombreuses méthodes simples qui délèguent à toutes les méthodes d’une autre classe. Solution : faites de la classe un héritier du délégué, ce qui rend les méthodes de délégation inutiles.

011
Code Smells Mascot
Remplacer l'héritage par la délégation

Problème : vous avez une sous-classe qui n'utilise qu'une partie des méthodes de sa superclasse (ou il est impossible d'hériter des données de la superclasse). Solution : créez un champ, placez-y un objet de la superclasse, déléguez les méthodes à cet objet et supprimez l'héritage.

012