Ho la seguente situazione. Ho un metodo factory che restituisce una matrice. Questa matrice può essere calcolata su due livelli di precisione: livello1 e livello2. Per calcolare la matrice, ho bisogno di passare un po 'di informazioni al metodo factory, e questa informazione è ben confezionata in un altro oggetto Info. Le informazioni vengono passate al metodo factory e la matrice viene restituita.
Le informazioni contengono dettagli necessari per entrambi i livelli di accuratezza. un insieme di questi dettagli sono usati solo dal livello1. Se è necessario il livello 2, le informazioni devono contenere dati aggiuntivi che vengono utilizzati per valutare l'accuratezza del livello 2.
Ho due strategie per eseguire la decisione:
- Ho passato l'oggetto Info al metodo factory. Se trova le informazioni per level2, calcola la precisione di livello 2. Se trova solo informazioni per level1, calcola level1.
- si passa al metodo factory sia i dati info che il livello di accuratezza richiesto, quindi si utilizzano solo i contenuti info utili per il livello appropriato. Potrebbe esserci un caso in cui è richiesto level2, ma Info non contiene alcuna informazione di livello2. In tal caso il programma genererà un'eccezione.
Quale opzione considereresti migliore?