Composing Methods.
Problème : vous avez un fragment de code qui peut être regroupé. Solution : déplacez ce code dans une nouvelle méthode (ou fonction) distincte et remplacez l'ancien code par un appel à la méthode.
Problème : vous avez une expression difficile à comprendre. Solution : placez le résultat de l'expression ou de ses parties dans des variables distinctes qui se passent d'explication.
Problème : lorsque le corps d'une méthode est plus parlant que la méthode elle-même, employez cette technique. Solution : remplacez les appels à la méthode par son contenu, puis supprimez la méthode.
Problème : Vous avez une variable temporaire à laquelle est affecté le résultat d’une simple expression, et rien de plus. Solution : Remplacez les références à cette variable par l’expression elle-même.
Problème : une valeur est affectée à un paramètre à l'intérieur du corps d'une méthode. Solution : utilisez une variable locale au lieu d'un paramètre.
Problème : Vous avez une longue méthode dans laquelle les variables locales sont si entremêlées que vous ne pouvez pas appliquer Extraire une méthode. Solution : Transformez la méthode en une classe distincte afin que les variables locales deviennent des champs de la classe. Vous pourrez alors scinder la méthode en plusieurs méthodes au sein de la même classe.
Problème : vous placez le résultat d'une expression dans une variable locale pour l'utiliser plus tard dans votre code. Solution : déplacez l'expression entière dans une méthode distincte et renvoyez-en le résultat. Interrogez la méthode au lieu d'utiliser une variable. Intégrez la nouvelle méthode dans d'autres méthodes si nécessaire.
Problème : vous avez une variable locale utilisée pour stocker différentes valeurs intermédiaires à l'intérieur d'une méthode (à l'exception des variables de boucle). Solution : utilisez des variables différentes pour des valeurs différentes. Chaque variable ne doit être responsable que d'une seule chose en particulier.
Problème : vous souhaitez remplacer un algorithme existant par un nouveau ? Solution : remplacez le corps de la méthode qui implémente l’algorithme par un nouvel algorithme.