Evita i doppi significati
Hai deliberatamente selezionato una parola che ha più di un significato e che la prima decisione è il problema. Ci sono un sacco di parole che sono problematiche per i programmatori. Un altro esempio sarebbe phone
. Puoi phone
qualcuno o potresti averne uno phone
in tasca.
Usa Getter e setter
La denominazione standard per la maggior parte degli oggetti sono i metodi getter / settings per le proprietà.
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
Le proprietà sono stati non nomi
Penso che ti sbagli classificando le proprietà degli oggetti come nomi e anche le variabili potrebbero essere pensate agli stati. Sono stati rilevanti per la portata locale della loro esistenza.
Potresti descrivere il valore che detengono come sostantivo, ma non sono sicuro che sia vero in tutti i casi.
Nella terminologia OOP le proprietà dell'oggetto descrivono lo stato di tale oggetto. Nel tuo caso Battery
è un oggetto ed Charge
è uno stato. Quindi sarebbe una proprietà dell'oggetto, ma questo dipende dal contesto in cui viene utilizzato.
Se devi essere in grado di Charge
caricare la batteria e sapere qual è la corrente Charge
, allora hai un problema.
Utilizzo dell'ambito per applicare il contesto
Il contesto è ciò che chiarirà quale significato di una parola intendi comunicare con un metodo o una proprietà. Scope sta impostando l'accessibilità di una proprietà / metodo dall'esterno dell'oggetto.
Batter._charge // a hidden private property
Battery.setCharge(value) // would set the private property
Battery.getCharge() // would get the private property
Battery.Charge() // would perform the Charge action
I metodi sono verbi
Puoi descrivere il metodo di un oggetto come un verbo, ma la parola azione è più adatta. Nella terminologia OOP si eseguono azioni sugli oggetti usando i loro metodi. È una forma errata modificare la proprietà di un oggetto dall'esterno dell'oggetto. Si preferisce chiamare un metodo che esegue le azioni richieste che causano il cambiamento dello stato.
La parola Charge
è un verbo, ma è anche un sostantivo. Quando viene utilizzato per chiamare il metodo di un'azione, diventa chiaro che il verbo viene utilizzato Battery.Charge(....)
.
Ma il contesto è molto importante. Mentre la parola Charge()
è un verbo non è significativa come startCharging()
.
Metodi validi per Battery
potrebbero includere Charging
, Discharging
, setCharge
, getCharge
, hasCharge
, Discharge
e Charged
.
I semplici metodi con una sola parola spesso non dichiarano esplicitamente le loro azioni in modo chiaro, ma ci sono alcuni casi come open
e in close
cui è richiesta poca spiegazione.
Quindi non c'è davvero una risposta corretta su come nominare questi tipi di proprietà / metodi. Solo che è necessario utilizzare saggiamente le tecniche di cui sopra per garantire che non vi sia confusione.