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
ViewLibrarye richiede siaRemoteWebcheLocalWebper convertire l'un tipo nell'altro quando accedono alle viste condivise. - Aggiungi una dipendenza su
RemoteDataaViewLibrary, anche se dovrebbe essere indipendente dall'origine dati.
Ci sono delle opzioni migliori? Per cominciare, questa struttura è difettosa?