Esiste uno schema o una procedura ottimale per passare un tipo di riferimento a più classi rispetto a una classe statica?

4

La mia applicazione .NET crea file HTML e, come tale, la struttura appare come

variable myData
BuildHomePage()
variable graph = new BuildGraphPage(myData)
variable table = BuildTablePage(myData)

BuildGraphPage e BuildTablePage richiedono entrambi i dati di accesso, l'oggetto myData.

Nell'esempio precedente, ho passato l'oggetto myData a 2 costruttori. Questo è quello che sto facendo ora, nel mio attuale progetto.

L'oggetto myData e le sue proprietà sono tutte in sola lettura.

Il problema è che il numero di pagine che richiederà questo oggetto è cresciuto. Nel progetto reale, ci sono attualmente 4, ma la nuova specifica è di avere circa 20. Passare questo oggetto al costruttore di ogni nuovo oggetto e assegnarlo a un campo richiede un po 'di tempo, ma non è un disagio!

Questo pone la domanda se sia meglio continuare come ho fatto io, o per fare il refactoring e creare una nuova classe statica per myData che possa essere referenziata da qualsiasi punto del mio progetto.

Immagino che le mie capacità di usare Google siano scarse, perché ho provato a trovare uno schema appropriato perché sono sicuro che questo tipo di design deve essere un luogo comune, ma i miei risultati non hanno restituito nulla.

Esiste uno schema adatto, oppure le migliori pratiche tendono a un'implementazione rispetto a un'altra.

    
posta Dave 20.08.2014 - 11:59
fonte

1 risposta

1

Va bene mettere i dati immutabili in una classe statica, specialmente se i valori sono veramente costanti (ad esempio, la velocità della luce o pi) o pensate che non avrete mai bisogno di cambiarlo (ad esempio per testare diverse configurazioni) . Se i dati sono mutabili, renderli accessibili da qualsiasi parte del codice è la cosa peggiore che puoi fare; diventa una variabile globale e creerai dipendenze invisibili tra ogni pezzo di codice che vi accede. Dovresti limitare il più possibile l'ambito dei dati mutabili e passarlo esplicitamente nel punto in cui è necessario, in modo che le dipendenze siano visibili ed evidenti.

    
risposta data 22.08.2014 - 13:50
fonte

Leggi altre domande sui tag