E' arrivato il momento di raccogliere il fattore comune del codice duplicato e unificarlo in un solo punto eliminando cosi le duplicazioni. Annoto alcune indicazioni da Working Effectively with legacy code di M.C.Feathers .
Quando la duplicazione riguarda una porzione di codice o una parte di una espressione dentro un metodo si applica il RefactoringExtractMethod.
Quando la parte duplicata è una espressione, ad esempio una espressione condizionale applica il RefactoringDecomposeConditional .
Quando la parte duplicata è un metodo intero e relative variabili di classe si applica il RefactoringExtractSuperclass.
Quando la duplicazione riguarda buona parte di un metodo a meno di piccole differenze, si applica il RefactoringFormTemplateMethod.
Quando il codice duplicato è un if o uno switch ripetuto uguale in diverse parti considera RefactoringReplaceConditionalWithPolymorphism e IfNonEObjectOriented .
Tags : Team Work | Agile | Pratiche | Progettazione Software |