Libreria corretta per enumerazioni

1

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 sia RemoteWeb che LocalWeb per convertire l'un tipo nell'altro quando accedono alle viste condivise.
  • Aggiungi una dipendenza su RemoteData a ViewLibrary , anche se dovrebbe essere indipendente dall'origine dati.

Ci sono delle opzioni migliori? Per cominciare, questa struttura è difettosa?

    
posta Bobson 18.10.2013 - 00:22
fonte

1 risposta

0

In generale, vuoi mettere il codice in librerie che sono comuni alle altre librerie in cui verranno utilizzate e nominali di conseguenza. Quindi nel tuo caso, dato che l'enum è comune solo alle librerie RemoteData e LocalData e specifico per questo particolare progetto, creo una nuova libreria chiamata [ProjectName]Data e inseritela lì.

    
risposta data 18.10.2013 - 17:49
fonte