0

編集: もう一度、コメントして答えてくれた人たちに感謝します。同意しました。世界で最高の質問ではありませんが、この障害を乗り越えるには少しプッシュする必要がありました。特に私が持っていたのは、戻り型がメソッドシグネチャの重要な部分であるということです。

クリーンコーディングの重要な側面の1つは、クラス、変数、およびメソッドに適切な名前を選択することです。

私が文学やオンラインで読んだものに続いて、私は、第一に、可能な限り説明的(したがって明確な)であり、第二に、可能な限り簡潔な名前を選ぶようにします。

私は自分自身の娯楽のためであり、Javaでチェスゲームを書くことを学んでいます。そして、満足のいく方法で名前を付ける方法を単純に理解できない方法に出くわしました。このメソッドは私のISquareインターフェース上にあり、現在そのマスを攻撃しているピースのリストを戻すことを目的としています。

完全に説明するために、名前は、メソッドがピースのコレクション、おそらくリストでさえも返すこと、およびピースがこの正方形のインスタンスを攻撃していることを示す必要があります。後者はメソッドがどこにあるかによって暗示されていると主張することもできますが、それについてはよくわかりません。

私が考えることができる最もわかりやすい名前は、おそらく他のすべての命名規則に違反しており、明らかにそうはなりません。

List<IPiece> giveMeTheListOfPiecesThatThisSquareIsUnderAttackBy();

これらの2つの選択肢は、メソッドが現在のインスタンスに関連していることを示していますが、結果がブール型であることを示唆しているようです。

List<IPiece> isUnderAttackByPieces();
List<IPiece> underAttackByPieces();

次のものは、リターンタイプについて説明していますが、ピースが何を攻撃しているのかについては明確ではありません。

List<IPiece> getAttackingPieces();

これは私の基準を満たしているかもしれませんが、直感的には、「This」と「Square」という単語を使用するとあまり見栄えがよくないと思います。

List<IPiece> piecesAttackingThisSquare();

現在、私はで解決しましunderAttackByPieces()たが、上記のように、それは完全には釘付けではありません。

あなたが提供できるどんな助けも最もありがたいです!

4

1 に答える 1

4

私はで解決しgetAttackingPiecesます。の方法なので、ISquare何が攻撃されているのかは十分明らかだと思います。メソッドのJavadocコメントでより明確にすることができます。

于 2013-02-18T16:07:24.607 に答える