2011-01-19 22 views
0

C#バックグラウンドからは、取得に時間がかかりませんが、何かが長時間かかる場合はgetXメソッドが使用されます(msdn link)。 Javaでは、プロパティが存在しないので、どちらの場合にもgetXを使用しますか、それほど高速ではないアクセス(文書化以外)からの迅速なアクセスを示す他の規約がありますか?getXメソッドを使用する場合

編集:たとえば は、データベースへのアクセスなどの時間のかかるget操作のためのさまざまな命名規則を使用するか、またgetX命名規則を使用しますか?

+0

Javaでは、呼び出し元がメソッドの実行に時間がかかり、可能であれば別のメソッドを呼び出す必要があるかどうかを知る必要はありません。 –

答えて

4

通常、メソッドは高速アクセスメソッドとみなされ、データベースバックアップメソッドはfindX()またはloadX()またはこれらの行に沿ったものである必要がありますが、私が知る限り、それ以上の合意はありません。たとえ「ゲッター達が速くなければならない」というルールでさえ、時には遵守されません。

0

それは状況に依存し、あなたがやっている正確に何を - 通常の「安い」プロパティのようにまたは時々ちょうどgetX - たとえば、あなたがloadXfetchXcomputeXを使用する場合があります。

2

getXの表記は、JavaBean仕様です。最近では、多くのフレームワークがSpringHibernateを含むgetterとsetterを使ってオブジェクトを操作するので、POJOs(Plain Old Java Objects)の使用は非常に一般的になっています。

具体:X(セッター)の任意の値のブールX(ゲッタ)用nonboolean X(ゲッタ)用

  • getX
  • isX
  • setX

POJOの使用を必要とするフレームワークを使用しない場合は、是非あなたのメソッドに名前をつけて、彼らが一見したことを知るようにしてください。

+0

私はbooleanの戻り値の型として 'isX'を認識しています。私の焦点は、戻り値の型よりもアクセスの速度に基づいた名前付けにあります。言い換えれば、処理に時間がかかる場合はまだ 'getX'であるべきですか? – Cornelius

+0

@Cornelius:いいえ、いいえ。'getX'は変数への基本的なアクセスのために使われるべきです。時間がかかるもの(dbアクセス、計算、処理など)には、適切な命名体系を使用します。 – darioo

+0

ブーリアンのためのisXコンベンションは決して好きではありませんでした。わずかに読みやすくするために完全にきれいなパターンを破るのはなぜですか?実際には何度も読むことができません。そして、オブジェクトを入力します。 Eclipseのはブール値を逃してしまいます!申し訳ありませんが、接線は、私はちょうどいつも気になります.. :) – romacafe

0

大まかには、プロパティへのローカルアクセス用のプライベートメンバーフィールドと、外部アクセス用のゲッタ/セッタを作成します。

Springのような第三者のライブラリの多くは、依存性注入(制御の反転)のためのパブリックメソッドと、ゲッター/セッターを使用するアスペクト指向のプログラミングに依存して、そのプログラミングスタイルを容易にします。

たとえば、2つのオブジェクトを関連付けるためにSpringを使用できます。または、AOPを使用して、いくらか高価なget操作を回避するためにキャッシュ動作を設定することもできます。

また、プロパティの変更または取得時にブレークポイントを設定し、デバッグに役立つログなどを追加することもできます。

関連する問題