Ci sono diverse regole che uso quando lo faccio. Si applicano a tutti i tipi di cose, non solo alle coordinate xey, ma anche ai criteri di ricerca, agli insiemi di flag, ai set di parametri numerici e così via.
Detto questo, non tutti usano questi principi e spesso puoi trovare codice di alta qualità che prende altre decisioni.
Quattro o più parametri dovrebbero di solito essere refactored negli oggetti
Se la tua funzione richiede quattro o più parametri, dovresti provare a rifattorizzarli in oggetti che li raggruppano.
Il motivo è che quattro parametri per una funzione sono in genere semplicemente troppo . In una chiamata di funzione, diventa difficile tenere traccia di quali argomenti si intendono per quali parametri, specialmente se alcuni parametri assumono un valore predefinito o sono facoltativi.
Linee di codice come queste sono piuttosto frustranti da vedere:
SomeMethod(1, null, null, 1, 0)
SomeMethod(1, 1, 1, null, 5)
Nelle lingue che supportano i parametri formali denominati, questo è meno di un problema. Ma di solito le persone non si preoccupano di specificare il nome di un parametro quando non devono farlo.
Inoltre, se dopo il refactoring ti trovi ancora di fronte a una funzione con quattro o più parametri, probabilmente hai problemi più grandi.
Gli insiemi di 2+ parametri che appaiono frequentemente insieme dovrebbero essere refactored negli oggetti
Questo caso tocca il caso delle coordinate, poiché in un progetto che richiede le coordinate, di solito devi definire molte funzioni che le prendono come parametri.
Se questi parametri appaiono così frequentemente nelle chiamate ai metodi, probabilmente c'è un strong legame tra loro.
I set di parametri che controllano la funzionalità estensibile devono essere inseriti in un oggetto
Ad esempio, se hai un metodo come:
Search(string name, int age, DateTime date, ...)
Dove ha senso che l'elenco di parametri sia esteso con l'aggiunta di altri criteri, allora dovresti inserire l'insieme di criteri in un oggetto.