Sto cercando di migliorare un'altra astrazione della porta seriale. Il progetto coinvolto spesso deve controllare uno dei segnali di controllo singoli CTS e DSR. Questo è attualmente fatto da una chiamata a GetCommModemStatus
, che è molto prolisso: una variabile è necessaria e un'operazione binaria AND, GetComModemStatus
può anche fallire (questo è più teoricamente, ma dove controllarlo altrimenti ...)
Desidero espandere la "astrazione" in questione dai getter per CTS e DSR. E ho bisogno di aiuto nella decisione di farli restituire bool
o int
e se il prefisso get
non renderebbe più difficile leggere il codice risultante? Dovrei usare la piena maiuscola?
Ecco alcuni esempi di codice che utilizzano la nuova API:
1) con prefisso get
e risultato booleano
if (sp.getCts()) {
// CTS is ON
}
if (!sp.getCts()) {
// CTS is OFF, in my eyes this looks like getting CTS has failed
}
2) nessun prefisso get
con risultato intero
if (sp.Cts()==1) {
// CTS is ON
}
if (sp.Cts()==0) {
// CTS is OFF
}
3) con CTS maiuscola (di nuovo, nessun get
con bool
risultato)
if (sp.CTS()) {
// CTS is ON
}
if (!sp.CTS()) {
// CTS is OFF
}
... questo è solo per illustrare ciò che ho provato in mente; forse c'è anche una soluzione migliore che ho tralasciato?