0

いくつかのパラメーターから新しいインスタンスのリストを作成するメソッドがあります。私はそれを次のように呼びます:

List<NewType> createNewTypeInstances(OldType1 value1, OldType2 value2);

しかし、次のような方法で名前が付けられていることもよくあります。

List<NewType> getNewTypeInstances(OldType1 value1, OldType2 value2);

私の質問は次のとおりです。何かを作成する (またはより一般的には返す) すべてのメソッドは、接頭辞getで名前を付ける必要がありますか?

4

3 に答える 3

2

いいえ。メソッドの機能を最もよく表す名前を選択する必要があります。get/set プレフィックスを使用することは、オブジェクトのプロパティにアクセスするための受け入れられた規則ですが、このメソッドは getter ではありません。

メソッドはものを作成し、単に取得するのではないため、私は個人的に create を使用します。しかし、不要なノイズを追加する「インスタンス」サフィックスを削除します。すべてのオブジェクトはクラスのインスタンスです。私が知っていることを考えると、おそらくメソッドに名前を付けるでしょうcreateNewTypes()

そうは言っても、ソフトウェアについて何も知らずに、実際にはわかりやすい名前ではありませんOldTypeNewType

于 2014-01-10T08:18:13.807 に答える
1

次のようなゲッターを使用するのはスタイルが悪く、誤解を招きます。

  • 実際には「ゲッター」ではありません (つまり、インスタンスのフィールドを返さない)
  • 副作用がある(何かを変更する)

あなたの方法は両方の点で失敗します。

それを呼び出すことcreate...はより良い選択であり、メソッドが密接に連携しているファクトリメソッドによく使用されるプレフィックスです。

于 2014-01-10T08:26:29.353 に答える
0

このメソッドはcreateNewTypeInstances何かを作成しているため、 という名前にする必要があると思います。メソッドgetは慣習的にゲッター (アクセサー メソッド) であり、新しい値を作成するのではなく、既存の値を返す仕事です。

于 2014-01-10T08:18:28.070 に答える