Pattern di refactoring Split Temporary Variable vs collection variable

1

Stiamo utilizzando Java come linguaggio di sviluppo back-end.

Stiamo usando una variabile di lista come

method() {
  List recordsList = new ArrayList<Record>();
  .
  .
  recordsList.add(records);
  .
  .
  recordsList.flush();
  .
  . 
  recordsList.add(new Record());
}

Dovremmo considerare il pattern di refactoring Split Temporary Variable in questo caso, creando così un nuovo List come

 method() {
  List recordsList = new ArrayList<Record>();
  .
  .
  recordsList.add(records);
  .
  .
  recordsList.flush();
  .
  . 
  List newRecordList = new ArrayList<Record>();
  newRecordList.add(new Record());
}
    
posta Free Coder 29.12.2015 - 19:16
fonte

1 risposta

4

Sì. Ci sono tre motivi per farlo:

  • impedisce la confusione laddove qualcuno che legge il codice potrebbe pensare che un'operazione eseguita sul secondo gruppo di elementi sia stata eseguita sul primo o viceversa, poiché non hanno notato l'eliminazione dell'elenco

  • ti incoraggia a trovare nomi di variabili più specifici - dovrai rinominarne uno e spero che troverai un modo utile per designare la differenza tra i due elenchi

  • almeno in Java, l'implementazione ArrayList non riduce la sua schiera di backup quando si cancella l'elenco, il che potrebbe causare uno spreco di memoria mentre è in corso la seconda parte dell'operazione.

Inoltre, esaminerei attentamente il tuo metodo in termini di dimensioni e complessità. Se la tua operazione genera una lista, la usa, la svuota e ne genera una nuova, mi chiedevo se sarebbe saggio dividerlo in due metodi che incapsulano queste due fasi separabili dell'operazione.

    
risposta data 29.12.2015 - 19:56
fonte

Leggi altre domande sui tag