Unikaj podwójnego znaczenia
Celowo wybrałeś słowo, które ma więcej niż jedno znaczenie, i ta pierwsza decyzja jest problemem. Istnieje mnóstwo słów, które są problematyczne dla programistów. Innym przykładem może być phone. Możesz phonekogoś lub możesz mieć phonew kieszeni.
Użyj Getters i Setters
Standardowe nazewnictwo większości obiektów to metody pobierające / ustawiające właściwości.
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
Właściwości są stanami, a nie rzeczownikami
Myślę, że mylisz się, klasyfikując właściwości obiektu jako rzeczowniki, a zmienne można również traktować jako stany. Są to stany związane z lokalnym zakresem ich istnienia.
Możesz opisać wartość, którą mają jako rzeczownik, ale nie jestem pewien, czy tak jest we wszystkich przypadkach.
W terminologii OOP właściwości obiektu opisują stan tego obiektu. W twoim przypadku Batteryjest to obiekt i Chargejest stanem. To byłaby właściwość obiektu, ale zależy to od kontekstu jego użycia.
Jeśli musisz być w stanie Chargenaładować baterię, a także wiedzieć, co to jest prąd Charge, masz problem.
Używanie zakresu do wymuszania kontekstu
Kontekst wyjaśnia, jakie znaczenie słowa ma przekazać metoda lub właściwość. Zakres określa ustawienie właściwości / metody spoza obiektu.
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
Metody to czasowniki
Możesz opisać metodę obiektu jako czasownik, ale lepiej nadaje się akcja słowo. W terminologii OOP wykonujesz działania na obiektach przy użyciu ich metod. Zła forma modyfikowania właściwości obiektu spoza obiektu. Preferowane jest wywołanie metody, która wykonuje wymagane działania, które powodują zmianę stanu.
Słowo Chargejest czasownikiem, ale także rzeczownikiem. W przypadku wywołania metody akcji staje się jasne, że czasownik jest używany Battery.Charge(....).
Ale kontekst jest bardzo ważny. Chociaż słowo Charge()jest czasownikiem, nie jest tak znaczące jak startCharging().
Prawidłowe metody Batterymogą obejmować Charging, Discharging, setCharge, getCharge, hasCharge, Dischargei Charged.
Proste metody jedno słowo często nie wyraźnie stwierdzić jasno swoje działania, ale są pewne przypadki, jak openi closegdzie wymagana jest trochę wyjaśnień.
Więc tak naprawdę nie ma poprawnej odpowiedzi na pytanie, jak nazwać tego rodzaju właściwości / metody. Tyle, że musisz mądrze stosować powyższe techniki, aby upewnić się, że nie ma zamieszania.