0

ブール値を返す Java メソッドの命名規則 (疑問符なし) を参照してください。

私が求めていないことについて比較するために。

私の質問は、コンテナ オブジェクトに埋め込まれたデリゲートから派生したプロパティに関するものです。

タイプに関係なく、すべてのプロパティのセッターには簡単かつ便利に「set」という接頭辞を付けることができますが (例: setValueRequired(blah) )、さまざまなタイプのブール型プロパティがあり、それぞれのゲッターは慣習的に {動詞}{PropertyName} と名付けられています。例えば、

  • 最も一般的なのは実存的であり、慣例により、「is」が前に付けられます。例: isEmpty()。
  • hasValue() のように、「has」で始まる所有プロパティ。
  • 「requires」を前に付けた必要性の肯定。

圧倒的に、ほとんどのプロパティ ゲッターは何らかの形で存在するプロパティに変換されます。たとえば、isRequireResize、isValued などです。したがって、私の質問は、(デリゲート クラスの) 存在するブール プロパティの表現のみに関係しています。

コンテナー クラスが、クラス Queue を含む Printer であるとします。

class Queue {
  boolean empty, resettable, resizable;
}

class Printer {
  Queue queue;
}

では、プリンターは、委任されたキューのプロパティにどのように名前を付ける必要がありますか? 以下は、英語の理解の慣習により、そのステータスを確認せずに質問をしているように聞こえるため、ぎこちないためです。

  • isQueueEmpty()
  • isQueueResettable()
  • isQueueResizable()

ブール値のプロパティは肯定的で、質問をしているように聞こえないようにする必要があります。したがって、わかりやすい英語の場合、それらは

  • queueIsEmpty()
  • queueIsResettable()
  • queueIsResizable()

または、代わりに、

  • isEmptyQueue()
  • isResettableQueue()
  • isResizableQueue()

ただし、自動化されたデリゲート メソッド コード ジェネレーターは、常に isQueueEmpty()、isQueueResettable()、isQueueResizable() という名前を生成します。

if に配置すると厄介です

if (isQueueResettable() && !isQueueEmpty()) resetQueue();

このほうがいいように

if (isResizableQueue() && !isEmptyQueue()) resetQueue();

〜実際に
私の質問

  1. プロパティゲッターの命名規則を推奨するJSRがある場合は? それは何ですか?確かに存在するに違いありません。そうでなければ、世の中のすべてのコード ジェネレーターがあいまいな慣習で足を引きずっているのではないでしょうか?

  2. 存在する場合、JSR には委任されたブール値の存在するプロパティ ゲッターに関する推奨事項がありますか?

  3. JSR ではない場合、少なくとも Apache、JBoss、Eclipse などの何らかの形式の RFC はありますか?

  4. 私が推奨する規約は、コード ジェネレーターがクエスチョン ゲッターを作成するよりも優れていると思いませんか?

4

2 に答える 2

0

メソッド名は動詞で始まる必要があるため、queueIsEmpty使用しないでください。

この特定のケースについて言及している命名規則に関する記事は見つかりませんが、最も自然な選択はisQueueEmpty. の代わりに をisEmptyQueue参照します。「このオブジェクトのキューは空です」ではなく、「このオブジェクトは空のキューです」かどうかを返します。thisthis.queue

Oracle はフォーム上でもメソッド名を使用しますisQueueEmpty

AbstractButtonJFrameJTableおよびそれらのスーパークラスで定義されている関連するメソッド名を次に示します。

isAlwaysOnTopSupported, isBackgroundSet, isBorderPainted, isCellEditable, isCellSelected, isColumnSelected, isContentAreaFilled, isCursorSet, isFocusPainted, isFocusTraversalPolicySet, isFontSet, isForegroundSet, , isMaximumSizeSet_ _ _ _ _isMinimumSizeSetisOptimizedDrawingEnabledisPreferredSizeSet isRequestFocusEnabledisRolloverEnabledisRootPaneCheckingEnabledisRowSelected

于 2013-06-06T06:25:40.703 に答える
0

私は JSR についてあまり知りませんが、理解しようとしているだけです。

あなたは、あなたよりも(そしておそらく他の多くの人にとって)isResettableQueue()良い音だと言います。isQueueResettable

--にisResettableQueue()分割すると、話の主な対象 (事物) が最後に文脈に入ります (この場合は)。isResettableQueueQueue

しかし、- -にisQueueResettable()分割すると、話している主なオブジェクト (物) が早い段階で (少なくとも最後ではなく) 文脈に入ります。isQueueResettable

だからあなたは言うことができますOk now I am talking about Queue for which I am checking if it is empty

于 2013-06-06T04:39:13.027 に答える