web-dev-qa-db-ja.com

ゲッターのプレフィックスとして「get」を使用するのが最善ですか?

ブール値(プロパティ)がある場合、shouldAutoLoginは、ゲッターにgetShouldAutoLoginまたは単にshouldAutoLoginと名前を付けて、英語のように読めるようにした方がよいでしょうか?

例:

if(shouldAutoLogin){
    ...
}

または

if(getShouldAutoLogin){
    ...
}
8
Mike Bryant

ゲッターの命名規則は通常、

getAutoLogin()文字列またはオブジェクトを取得する場合。

ブール値の場合はisAutoLogin()

9
JNL

従来、ゲッターの値にはgetまたはisが前に付けられています。これは、Javaスタイルガイド。例 Javaプログラミングスタイルガイド でよく言及されます(これは1つの例にすぎません)。

このようなメソッド名の規則は、リフレクションを使用したり、特定のスタイルのコードを期待するツールで時々適用されます。たとえば、再びJava(JSPの式言語ですが)では、jspのコンパイル時に_${foo.bar}_がfoo.getBar()の呼び出しに変換されます。getValue()はこのように強制されるため、単なる規則以上のものになります。

前述のように、上記の例はJavaからのものです。これはJavaの規則です。他の言語には他にも注意すべき規則があり、おそらく従う必要があります。一部の言語はプロパティを使用します(また、要求に応じてコピーしたり、読み取り専用にするなど、他のきちんとしたこともできます)。

特定の言語の選択に合わせてスタイルガイドを調べます。他のコーダーがあなたのコードを読むとき、あなたの個人的なスタイルを理解しようとせずにより早くコードに入ることができるように、可能であればそれらをフォローすることはおそらく良い考えです。

3
user40980

読みやすい方法でメソッドに名前を付けると、利点があります。名前からメソッドの意図と性質を簡単に導き出せるようにメソッドに名前を付ける( "ゲッターにはプレフィックスget、ブール述語、is"があります)にも利点があります。

バランスをとるのはあなた次第ですが、大規模なプロジェクトでは、一貫性のメリットは通常、偶発的な賢さのメリットを上回ります。

名前を読みやすく、規則に準拠するように名前を変更することは、毎日のいい練習です。あなたの特定のケースでは、isAutoLoginEnabledgetAutoLoginFlagのようなものを検討します。

OTOHあなたには、すべてがshouldDoSomethingのパターンに従うことができる概念的に類似した方法がたくさんあります。元の名前でもかまいません。

2
9000

私は常に、コードは可能な限り人間が読めるようにすべきだと思っています。コードの意図を明確に定義するのに役立ちます。あなたのケースでは、ブール値のプラスとマイナスの両方の使用法と、それが読みやすさとロジックの意図にどのように影響するかについて考えてください。

if(!shouldAutoLogin)
{
     ....
}

versus

if(!getShouldAutoLogin)
{
    ....
}

これは、コードが何をしようとしているのかという意図に、より明確な意味を与えますか?

他の人が示唆したように、変数の名前を

isShouldAutoLogin

または類似

1
Gibson

メソッドにgetAutoLoginreturnのようなデータ型をintさせたい場合は、Stringと書く傾向があります。ただし、trueまたはfalseboolean)であるかどうかを確認する場合は、getisにスワップするだけです。これ:getAutoLogin> isAutoLogin。どの言語にも命名規則があると思います。

0
Scientious