Reference Passing Style Anti Pattern

4

Sto lavorando su una base di codice legacy VB.Net. Ci sono pochissime funzioni che restituiscono valori, la maggior parte del codice è in metodi subs / void. La strategia generale sembra essere quella di passare tutto in riferimento, mutarlo e quindi osservare lo stato mutato.

Ci sono alcuni metodi che hanno una dozzina di parametri che sono mutati in questo modo.

Trovo molto difficile ragionare sul codice scritto in questo modo. È anche piuttosto difficile scrivere test per aiutare nel refactoring.

Mi piacerebbe sapere se c'è un nome per questo, principalmente nella speranza che io possa trovare modi migliori per spostare l'applicazione verso una struttura migliore.

Modifica

Probabilmente avrei dovuto dire che le chiamate tendono ad essere limitate all'interno dei propri file di migliaia di righe di classe.

In base alla risposta riportata di seguito sembra che debba utilizzare il metodo di estrazione per rendere i metodi con nomi significativi e trattare con i parametri opzionali. Dopo averlo fatto, posso iniziare a utilizzare estrai la classe per separare l'unità funzionale.

Tempi di divertimento.

    
posta aboy021 06.08.2013 - 05:36
fonte

1 risposta

3

Sembra Data Envy , in cui una routine utilizza principalmente o completamente un oggetto diverso.

Quello che dovresti fare è spostare la routine nella classe di cui si stanno modificando i dati.

Se hai una lunga routine che richiede una dozzina di parametri, potresti aver bisogno di estrarre il metodo prima di spostarlo.

    
risposta data 08.08.2013 - 17:21
fonte

Leggi altre domande sui tag