Sto tentando di ridefinire un codice in modo tale che il display sia separato dall'implementazione e non sono sicuro di dove mettere il enum
s esistente.
Il mio progetto è attualmente strutturato come segue:
- Utilità
-
RemoteData ( dipende da:
Utilities
) -
Dati locali ( dipende da:
RemoteData
,Utilities
) -
RemoteWeb ( dipende da:
RemoteData
,Utilities
) -
LocalWeb ( dipende da:
RemoteData
,LocalData
,Utilities
)
Ora sto cercando di aggiungere " ViewLibrary ( dipende da: Utilities
)" a questo elenco e quindi aggiungerlo come nuova dipendenza a entrambi RemoteWeb
e LocalWeb
. Conterrà un insieme di interfacce che gli altri due progetti implementeranno, utilizzeranno per popolare la vista e quindi consumeranno il risultato.
C'è un enum
che è attualmente utilizzato in tutti i progetti tranne Utilities
. Vive quindi nel progetto RemoteData
, perché tutto il resto dipende da esso. Ma questo nuovo ViewLibrary
non dipenderà da nessuno dei due progetti di dati. Quindi, come farà a sapere di questo enum
?
Alcune opzioni che vedo:
- Crea un nuovo progetto solo per valori enum condivisi.
- Aggiungilo a
Utilities
, anche se è correlato ai dati. - Definiscilo una seconda volta in
ViewLibrary
e richiede siaRemoteWeb
cheLocalWeb
per convertire l'un tipo nell'altro quando accedono alle viste condivise. - Aggiungi una dipendenza su
RemoteData
aViewLibrary
, anche se dovrebbe essere indipendente dall'origine dati.
Ci sono delle opzioni migliori? Per cominciare, questa struttura è difettosa?