質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

Q&A

解決済

2回答

17003閲覧

判定するメソッドにつけるメソッド名

koikuti

総合スコア50

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

0グッド

0クリップ

投稿2017/02/25 02:26

編集2017/02/25 04:20

###質問が抽象的すぎたので具体的な例に返させていただきました。
既に回答を頂いた方々、すみません。

###前提・実現したいこと
例えば、ゲームのキャラクターの属性を判定するメソッドとして、
力と早さの2つのステータス値を比較してどちらが大きいか、又は同じ値かで、
それぞれに対応する属性を返すメソッドにつける名前。

###該当のソースコード

java

1/** 2 * 力と速さを比較し、キャラクターの属性を判定します。 3 * 4 * @power5 * @speed 速さ 6 * @return 属性 7 */ 8private String hogehoge(int power, int speed){ 9 10 if(power < speed){ 11 return "SpeedType"; 12 } else if(power > speed) { 13 return "PowerType"; 14 } else if (power == speed){ 15 return "BalanceType"; 16 } 17}

###試したこと

  • TAPEを取得するメソッドなので、getTyep()

※ getHogeHoge は有るフィールドから値を取ってくるイメージで、大小比較が入っているので違うのかな?

  • TYPEを決定するメソッドなので、decideType() or judgeType()

※ メソッドの接頭語として、decide, judge を見たことがないので自信なし。

  • TYPEが何になるかチェックするので、checkType()

※ checkHogeHoge は判定をするメソッドにつけたりしますが、booleanを返すような判定につけるイメージ。

とどれもイマイチ違うような気がしています。
軽く調べてもドンピシャの回答を得られなかったので皆様のご意見を伺いたいです。

以下追記

  • comparePowerWithSpeed()

※ 既に頂いた回答から、compareを使うと上記のようになるかなと思うのですが、
比較することよりも、属性を判定することを表したほうが良いかと思っております。
また、力・速さに加えて、技も判定対象になるばらば、comparePowerWithSpeedAndTechnic()
の用になり、比較する値が多くくなるに連れ、めちゃめちゃ長いメソッド名になってしまうので...。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

原則として、名前はあまり中身に拘らない方が良いと思います。
実装を外部から隠すことは、好ましい場合が多いですので。
とは言え、max()やmin()とか、equal()的なものはそういう訳にもいかないので、ケースバイケースですが。

今回の場合、もし、a<b, b>a, a==bの3つのパターンに分類することが目的の関数なら、私ならcompare()を選びそうです。戻り値は-1, 1, 0とか、enum型で3つを判別等ですね。

そうではなくて、Type-1, Type-2, Type-3がたまたまその3つの状況の場合であり、今後増えていく可能性があるのであれば、getTypeName()のような感じにするだろうと思います。
文字列は比較する時にタイプミスしてもエラー・チェックが働かないので、enum型を返却したくなることが少なくないです。なので、その時困らないようにNameやStringを付けることも多いです。

checkType()がboolean返却というイメージには同意です。


【質問の編集を踏まえて】
私なら、getType()ですね。
そして、その戻り値をプログラムで判定して分岐するでしょうから、enum型を返却すると思います。
enum型なら分類の拡張にも対応できますし、その分岐時に例えば"Type-1"を"Tyep-1"などとタイプミスしてもコンパイラが検出してくれますし。

投稿2017/02/25 02:47

編集2017/02/25 04:32
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koikuti

2017/02/25 04:22

せっかく回答いただいたのにすみません。すこし、質問文を修正させていただきました。 よろしければ、修正後の内容で改めてご意見いただけたらと思います。
koikuti

2017/02/25 09:37

ありがとうございます。 getType()とすることにしました。 enum型を返却するよにするご意見もありがとうございます。 確かに、文字てるリテラルを手打ちして返却・判定などしていると、打ち間違いをよく起こします。 ご意見ありがとうございました。勉強になりました!
guest

0

[compare](https://docs.oracle.com/javase/jp/6/api/java/util/Comparator.html#compare(T, T))

Javaではcompareメソッドで-1,0,1を返します。

int compare(T o1, T o2)

compareXXXでよいのではと思います。

投稿2017/02/25 02:42

編集2017/02/25 02:43
sinmei99

総合スコア88

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koikuti

2017/02/25 04:22

せっかく回答いただいたのにすみません。すこし、質問文を修正させていただきました。 よろしければ、修正後の内容で改めてご意見いただけたらと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問