ConstructiCat Logo
CodeBust.
Browse section ▾

Remonter le champ.

Problem

Deux classes possèdent le même champ.

Solution

Supprimez le champ des sous-classes et déplacez-le vers la super-classe.

##Example

Avant
Unit Soldier health Tank health
Après
Unit health Soldier Tank

##Why Refactor

Les sous-classes ont grandi et évolué séparément, faisant apparaître des champs et des méthodes identiques (ou presque identiques).

##Benefits

  • Élimine la duplication des champs dans les sous-classes.

  • Facilite le déplacement ultérieur des méthodes dupliquées, si elles existent, des sous-classes vers une super-classe.

##How to Refactor

  1. Assurez-vous que les champs servent aux mêmes besoins dans les sous-classes.

  2. Si les champs portent des noms différents, donnez-leur le même nom et remplacez toutes les références aux champs dans le code existant.

  3. Créez un champ portant le même nom dans la super-classe. Notez que si les champs étaient privés, le champ de la super-classe doit être protégé (protected).

  4. Supprimez les champs des sous-classes.

  5. Vous pouvez envisager d'utiliser Auto-encapsuler le champ pour le nouveau champ, afin de le masquer derrière des méthodes d'accès.