Evita i Doppi significati
Hai deliberatamente selezionato una parola che ha più di un significato, e quella prima decisione è il problema. Ci sono un sacco di parole che sono problematiche per i programmatori. Un altro esempio potrebbe essere phone
. Puoi phone
qualcuno, oppure potresti avere phone
in tasca.
Usa getter e setter
La denominazione standard per la maggior parte degli oggetti è i metodi getter / impostazioni per le proprietà.
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
Proprietà sono stati non nomi
Penso che ti sbagli classificando le proprietà degli oggetti come nomi e le variabili potrebbero anche essere pensate per stati. Sono stati rilevanti per lo scopo locale della loro esistenza.
Potresti descrivere il valore che hanno come nome, ma non sono sicuro che sia vero in tutti i casi.
Nella terminologia OOP le proprietà dell'oggetto descrivono lo stato di quell'oggetto. Nel tuo caso il Battery
è un oggetto, ed è Charge
è uno stato. Quindi questa sarebbe una proprietà dell'oggetto, ma questo dipende dal contesto in cui viene utilizzato.
Se devi essere in grado di Charge
della batteria e anche sapere qual è il valore corrente di Charge
, allora hai un problema.
Utilizzo dell'ambito per imporre il contesto
Il contesto è ciò che chiarirà il significato di una parola che si intende un metodo o una proprietà da trasmettere. 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 l'azione della parola è più adatta. Nella terminologia OOP si eseguono azioni sugli oggetti usando i loro metodi. È una cattiva forma modificare la proprietà di un oggetto dall'esterno dell'oggetto. È preferibile chiamare un metodo che esegua le azioni richieste che ne determinano lo stato.
La parola Charge
è un verbo, ma è anche un nome. 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 quanto startCharging()
.
I metodi validi per Battery
potrebbero includere Charging
, Discharging
, setCharge
, getCharge
, hasCharge
, Discharge
e Charged
.
Spesso i metodi a una sola parola spesso non dichiarano esplicitamente le loro azioni in modo chiaro, ma ci sono alcuni casi come open
e close
dove è richiesta poca spiegazione.
Quindi non esiste una risposta corretta su come denominare questi tipi di proprietà / metodi. Tranne il fatto che devi usare le tecniche di cui sopra con saggezza per assicurarti che non ci sia confusione.