Ho avuto una discussione, se il codice per chiamare le informazioni da un database può avere un interruttore per mostrare anche le voci cancellate.
Semplicemente il codice (C #) ha questo aspetto:
void searchEntry(string searchValue, bool searchDelete = false)
Solitamente, la maggior parte della base di codice non vuole mostrare le voci cancellate, ma se si desidera ripristinare una voce (e questo è il mio unico caso) voglio che venga cancellato, se devono non eliminato.
Sono giunto alla discussione che "booleano" dovrebbe essere evitato con questo metodo,
Sicuramente, posso fare un enum come:
enum DeletionFlag {
DontSearchDeleted,
SearchDeleted
}
Ma rende questo codice davvero più leggibile:
void searchEntry(string searchValue, DeletionFlag searchDelete = DeletionFlag.SearchDeleted)
La tabella del database ha un valore bool per "isDeleted" da definire, se la voce è contrassegnata come cancellata.
Quindi potrebbe usare il tipo di chiamate:
db.searchEntry("somesearch", DeletionFlag.DontSearchDeleted);
db.searchEntry("somesearch", DeletionFlag.SearchDeleted);
Questa sarebbe una soluzione migliore, o è ok, stare con booleano per questo?
Quali sono i tuoi suggerimenti?