Come devo gestire un bit in più di informazioni su un oggetto?

1

Ho due classi: Employee e Conversation .

Conversation ha una proprietà con i dipendenti che partecipano alla conversazione: List<Employee> Participants { get; set; } .

Sul database, memorizzo per ogni partecipante, anche se non ci sono messaggi nella conversazione che non ha ancora letto.

Come dovrei memorizzare queste informazioni nel codice?

Ecco le opzioni a cui posso pensare:

  1. Uso di un array. La matrice contiene un Employee e un valore booleano che indica se l'impiegato ha letto o meno tutti i messaggi. Così Avrei un List<object[2]> (o qualcosa del genere, non importa la sintassi). Il problema con questo approccio è quello List<object[2]> non è molto chiaro. Ho bisogno di leggere il codice per capire cosa rappresenta.
  2. Uso di Dictionary<Employee, bool> , che è più chiaro di un array. Il problema è che di solito quando penso a a Dictionary Penso a un dizionario reale con parole e definizioni, e qui voglio davvero usarlo per archiviare qualcosa extra, non definendo la chiave.
  3. Semplicemente creando una classe Participant : Staffer che ha una proprietà in più bool ReadAll { get; set; } e in Conversation che ha semplicemente una proprietà List<Participant> . Questo sembra il modo più ragionevole, ma non sono sicuro che valga la pena di creare un nuovo tipo per un'attività così piccola.

Uno di loro? Altra opzione? Grazie.

    
posta Sipo 11.08.2016 - 08:25
fonte

1 risposta

3

La terza opzione è probabilmente la migliore, semplicemente perché allinea il codice con il mondo reale . Creare un nuovo tipo per modellare qualcosa che esiste realmente nel mondo reale rende il tuo codice più chiaro e molto più facile da capire.

Si noti che "partecipante" non deve necessariamente estendere dal dipendente, un partecipante potrebbe semplicemente contenere un riferimento a Employee.

    
risposta data 11.08.2016 - 10:21
fonte

Leggi altre domande sui tag