二重の意味を避ける
意図的に複数の意味を持つ単語を選択しましたが、その最初の決定が問題です。プログラマーにとって問題のある単語はたくさんあります。別の例は次のようになりますphone
。あなたはphone
誰か、またはphone
あなたのポケットに入れることができます。
ゲッターとセッターを使用する
ほとんどのオブジェクトの標準の命名は、プロパティのゲッター/設定メソッドです。
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
プロパティは名詞ではなく状態です
オブジェクトプロパティを名詞として分類するのは間違っていると思います。変数は状態と考えることもできます。それらは、その存在のローカルスコープに関連する状態です。
それらが保持する値を名詞として説明することもできますが、それがすべての場合に当てはまるかどうかはわかりません。
OOPの用語では、オブジェクトプロパティはそのオブジェクトの状態を表します。あなたの場合、Battery
はオブジェクトでありCharge
、状態です。したがって、それはオブジェクトのプロパティになりますが、これは使用方法のコンテキストに依存します。
Charge
バッテリーを使用できるようにする必要Charge
があり、現在のバッテリーが何かを知る必要がある場合は、問題があります。
スコープを使用してコンテキストを強制する
コンテキストとは、メソッドまたはプロパティに伝えることを意図している単語の意味を明確にするものです。スコープは、オブジェクトの外部からプロパティ/メソッドのアクセシビリティを設定しています。
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
メソッドは動詞です
オブジェクトのメソッドは動詞として説明できますが、アクションという言葉の方が適しています。OOPの用語では、メソッドを使用してオブジェクトに対してアクションを実行します。オブジェクトの外部からオブジェクトのプロパティを変更するのは悪い方法です。状態を変更するために必要なアクションを実行するメソッドを呼び出すことをお勧めします。
単語Charge
は動詞ですが、名詞でもあります。アクションのメソッドを呼び出すために使用すると、動詞が使用されていることが明らかになりBattery.Charge(....)
ます。
しかし、コンテキストは非常に重要です。単語Charge()
は動詞ですが、ほど意味がありませんstartCharging()
。
以下のための有効な方法はBattery
含めることができCharging
、Discharging
、setCharge
、getCharge
、hasCharge
、Discharge
とCharged
。
シンプルな1ワード法は、多くの場合、明示的に明確に彼らの行動を述べるませんが、そこにいくつかの例は次のようにしているopen
とclose
どこ少し説明が必要です。
そのため、これらのタイプのプロパティ/メソッドに名前を付ける方法に関して、実際には正しい答えはありません。混乱がないように、上記の手法を賢く使用する必要がある場合を除きます。