1

OOP パラダイムを使用してメソッドに名前を付けるとき、メンバー変数を返す場合にのみ、メソッドの前に "get" を付けますか? または、メンバー変数から計算された値を返すが、それ自体のメンバー変数ではない場合でも、名前に「get」を追加することは適切な OOP でしょうか?

たとえば、これは正しいはずです。

private int count = 0;    
public int getCount() {
    return count;
}

これは命名規則に違反しますか:

public int getCountPlusOne() {
    return count + 1;
}

すみません、私は完璧主義者です。

4

6 に答える 6

4

メンバー変数から計算された値を返しますが、メンバー変数自体ではなく、名前に「get」を追加することは適切な OOP でしょうか?

Java でのゲッターとセッターの命名は、「OOP 原則」によって管理されていません。これは純粋にJavaBeans の規則です。

クラス プロパティはget、 、setis(booleanの代わりにプロパティに使用get)、およびその他のメソッド (いわゆるアクセサ メソッドおよびミューテータ メソッド) を使用して、標準の命名規則に従ってアクセスできる必要があります。これにより、フレームワーク内で Bean の状態を簡単に自動検査および更新できます。その多くには、さまざまなタイプのプロパティのカスタム エディターが含まれています。セッターは、1 つまたは複数の引数を持つことができます。

getter および setter を介してアクセスされる値を意図的に "プロパティ" と呼び、フィールドと区別する規則に注意してください。この背後にある意図は、計算されたプロパティと格納されたプロパティの両方をカバーすることです。

これはあなたの質問への答えにつながります。計算されたプロパティのゲッターに「get」プレフィックスを使用することは完全に適切です。

于 2013-10-21T20:44:48.150 に答える
1

簡単な答え。いいえ、私が知っている命名規則に違反することはありません。

唯一のことは、名前がメソッドが何をするかをできるだけ明確に示す必要があるということです。したがって、あなたの場合getCountPlusOne、まさにそれを行うので、非常に良いメソッド名です。つまり、 returncount + 1です。

Java でのメソッドの命名に関して従うべき規則は次のとおりです。

メソッドは、lowerCamelCase の動詞でなければなりません。つまり、最初の文字が小文字で、後続の単語の最初の文字が大文字になります。

ご覧のとおり、OOP パラダイムや Java メソッドの規則自体に関連するものは何もありません。

詳細については、あちこちお読みください。

于 2013-10-21T20:40:23.990 に答える