2

オープンソースにする予定のアプリケーションを (Java で) 作成する場合、多くのゲッターとセッターを用意し、変数を非公開にするのは一般的に良い考えですか? より具体的には、それがAndroid アプリケーションである場合、上記の質問に対する答えは依然として有効でしょうか?

編集:なぜその方が良いのかについて具体的な理由を教えていただければ、それは素晴らしいことです.

4

3 に答える 3

8

ANDROIDでゲッターとセッターについて話し合っている場合は、Androidのドキュメントに記載されている内容を確認してください。- Androidでは
内部ゲッター/セッターを避ける
、これは悪い考えです。仮想メソッド呼び出しは、インスタンスフィールドルックアップよりもはるかにコストがかかります。一般的なオブジェクト指向プログラミングの慣例に従い、パブリックインターフェイスにゲッターとセッターを含めることは合理的ですが、クラス内では常にフィールドに直接アクセスする必要があります。

于 2011-02-23T08:08:22.753 に答える
3

このように言えば、ゲッター/セッターを持つ必要性を感じておらず、プロパティを非公開にする予定です。この方法で問題ないようです。しかし、自分自身にいくつかの質問をする必要があります。

  • 代入前に値を確認する必要があるプロパティはありますか? (セッターが必要です)
  • そのまま公開したくない変更可能なプロパティはありますか? (ゲッターが必要)

ここで、いくつかのプロパティにゲッター/セッターが必要であると思われる場合は、すべてではありません。次に、一貫性を保つために、すべてのゲッター/セッターを作成します。:)

詳しくは、Effective Java 2nd Editionを参照してください。

  • 項目 13: クラスとメンバーのアクセシビリティを最小限に抑える
  • 項目 14: パブリック クラスでは、パブリック フィールドではなくアクセサー メソッドを使用する
  • 項目15: 可変性を最小限に抑える
  • 項目 38: パラメータの有効性をチェックする
  • 項目56: 一般に受け入れられている命名規則に従う
于 2011-02-23T06:48:21.557 に答える
3

すべてのプライベート変数が外部からアクセスされることが予想される場合は、はい。

外部から使用されない特定のフラグがあり、それらのゲッター/セッターは必要ないとします。

こちらもご覧ください

于 2011-02-23T06:34:22.697 に答える