Éviter la double signification
Vous avez délibérément sélectionné un mot qui a plus d'un sens, et c'est le problème qui est pris en premier. Il y a une tonne de mots qui posent problème aux programmeurs. Un autre exemple serait phone
. Vous pouvez phone
quelqu'un, ou vous pourriez avoir un phone
dans votre poche.
Utiliser des Getters et Setters
La dénomination standard pour la plupart des objets est la méthode des accesseurs / paramètres pour les propriétés.
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
Les propriétés sont des états et non des noms
Je pense que vous vous trompez en classant les propriétés d'objet en tant que noms, et les variables peuvent également être considérées comme des états. Ce sont des États pertinents pour la portée locale de leur existence.
Vous pouvez décrire la valeur qu'ils ont en tant que nom, mais je ne suis pas sûr que ce soit vrai dans tous les cas.
Dans la terminologie POO, les propriétés d'objet décrivent l'état de cet objet. Dans votre cas, il Battery
s’agit d’un objet et c’est Charge
un état. Ce serait donc une propriété de l'objet, mais cela dépend du contexte d'utilisation.
Si vous avez besoin de Charge
la batterie et que vous savez ce qu’elle est actuellement Charge
, vous avez un problème.
Utilisation de Scope pour appliquer le contexte
Le contexte est ce qui clarifiera la signification d'un mot que vous souhaitez transmettre à une méthode ou à une propriété. L'étendue définit l'accessibilité d'une propriété / méthode depuis l'extérieur de l'objet.
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
Les méthodes sont des verbes
Vous pouvez décrire la méthode d'un objet comme un verbe, mais le mot action est mieux adapté. Dans la terminologie POO, vous effectuez des actions sur des objets à l'aide de leurs méthodes. C'est une mauvaise forme de modifier la propriété d'un objet de l'extérieur de celui-ci. Il est préférable d'appeler une méthode qui effectue les actions requises qui entraînent un changement d'état.
Le mot Charge
est un verbe, mais c'est aussi un nom. Lorsqu'il est utilisé pour appeler la méthode d'une action, il devient clair que le verbe est utilisé Battery.Charge(....)
.
Mais le contexte est très important. Bien que le mot Charge()
soit un verbe, il n’est pas aussi significatif startCharging()
.
Méthodes valides pour Battery
pourrait inclure Charging
, Discharging
, setCharge
, getCharge
, hasCharge
, Discharge
et Charged
.
Les méthodes simples en un mot n'énoncent souvent pas explicitement leurs actions, mais il existe des cas similaires open
ou close
demandant peu d'explications.
Il n’ya donc pas vraiment de réponse correcte quant à la manière de nommer ces types de propriétés / méthodes. Sauf que vous devez utiliser les techniques ci-dessus à bon escient pour éviter toute confusion.