Stavo leggendo l'ingegneria del software l'approccio di un professionista quando mi sono imbattuto in questa domanda. Penso che la risposta sia no ma non ho un motivo valido per cui vorrei sentire l'opinione di altre persone.
La risposta è no perché il refactoring non riguarda esplicitamente "l'intero design". Il refactoring consiste nel migliorare piccoli aspetti del design, uno alla volta, senza modificare la funzionalità.
È possibile fare le principali modifiche generali in un progetto attraverso una sequenza di piccoli passaggi di refactoring, ma non è il caso tipico, né le grandi modifiche possono essere sempre eseguite in questo modo.
"Refactoring" è qualsiasi modifica che tenta di modificare il codice sorgente senza cambiare il codice sorgente. Non è richiesto quanto piccolo o grande sarebbe il cambiamento.
Utilizzeresti il refactoring per migliorare il tuo codice sorgente. Spesso piccoli cambiamenti portano solo a piccoli miglioramenti, mentre grandi cambiamenti possono portare a grandi miglioramenti. Sei tu a decidere quale quantità di cambiamenti produce il miglior rapporto tra miglioramento e sforzo.
C'è sempre il rischio che una modifica introduca un bug. Apportando piccole modifiche, è meno probabile introdurre bug e, se lo fai, sarà più facile da trovare e correggere. Ecco perché il refactoring viene spesso eseguito in una serie di piccoli passi. Ma il refactoring può essere fatto buttando via del codice e riscrivendolo da zero, o facendo piccoli passi prima che un progetto sia completamente cambiato.
Fai semplicemente ciò che è meglio in base alla situazione.
Leggi altre domande sui tag design refactoring