Best practice per la diffusione di varie opzioni nel codice dell'applicazione

2

Ho una grande classe composta da proprietà che sono tipo di opzioni (di importazione). Sono archiviati in una classe bundle, in modo che sia facile serializzarli (o impostare ad es. Da variabili ambientali durante i test unitari). È qualcosa come:

class MyImportantAppSettings {
  string Dbo;
  string User;
  int BatchSize;
  int RecordLimit;
  int AllowAsync;
  int VeryImportantOtherOption;
  ...
  int The25thVeryImportantOption;
}

L'istanza di questa classe viene utilizzata attraverso l'applicazione, questo causa il mio codice strettamente dipendente da esso. Nonostante le impostazioni siano nascoste dietro un'interfaccia e iniettate agli oggetti tramite IOC, qui sento un cattivo odore.

Quale sarebbe il modo migliore / più pulito per implementare le impostazioni nel codice e diffonderle in classi?

    
posta A.D. 22.02.2017 - 15:17
fonte

1 risposta

7

Se molti punti del tuo codice hanno davvero bisogno di tutte quelle 25 opzioni importanti, non c'è nulla da fare. Esegui un importante refactoring in modo che le preoccupazioni nel tuo sistema siano meglio separate, o accetti che questa sia la soluzione migliore.

Tuttavia, se la maggior parte di questi luoghi richiede solo alcune di queste opzioni, la cosa da fare è esporre il pacchetto di opzioni in diverse interfacce, ognuna delle quali è molto più piccola del tuo attuale mega -interfaccia. In questo modo, quando i dettagli di alcune opzioni cambiano, solo le posizioni che effettivamente usano queste opzioni devono interessarti e non tutti i luoghi.

    
risposta data 22.02.2017 - 15:25
fonte

Leggi altre domande sui tag