0

だから2つの質問:

  1. クラスのパブリックアクセスまたはパッケージアクセスに使用する必要がありますか?すべてのプロジェクトで、すべてのクラスが1つのパッケージに保持され、他のプロジェクトでそれらのメソッドを使用することはありません。だから私はパブリックアクセスが必要ですか?パッケージは私にとっては大丈夫だと思います。そして、より安全になります。
  2. フィールドをプライベートにし、ゲッターとセッターを作成する習慣を知っています。ハーメチックの考え方も理解していますが、ゲッターとセッターの作成の哲学について読んだところ、理由は1つだけです。「ゲッターまたはセッターを実行して、1つの変数がプログラムの他の部分で直接使用されないようにする必要があります。これにより、そのようなゲッターの変更(どの値を返すかを決定するifステートメントなど)を確実に行うことができ、すべての部分がそのように動作することを確認できます。」しかし、99.9%のゲッターは、クラスのプライベート値を返すだけです。ほとんどの場合、ゲッターには「returnXXX」という1行しかありません。それで、ゲッターを使用する他の可能性はありますか?そしてセッター?私はかつてプロジェクトからゲッターとセッターを削除し、フィールドを公開しました。私が得たのは、プロジェクトがほぼ30%小さくなったということです。
4

1 に答える 1

1

一般に、すべてのフィールドをプライベートにし、必要に応じてゲッターとセッターを実装することをお勧めします。そうすることで、フィールドが意図しない方法で使用/変更されていないことを確認できます。たとえば、セッターにエラーチェックコードを追加して、フィールドが他のものを壊すような値に設定されていないことを確認できます。他のクラスがフィールドを直接設定できる場合、それを防ぐことはできません。

パッケージの可視性または公開を備えたフィールドを作成する正当な理由がある場合は、もちろんそうすることができますが、他の人/クラスがフィールドを間違った方法で使用した場合に発生する可能性のある問題に注意する必要があります。

フィールドを間違った値に設定したり、他の方法で失敗したりしないことがわかっているため、小さなプロジェクトではおそらく大きな違いはありませんが、他の人がクラスを使用したり、プロジェクトのサイズが大きくなったりした場合は、実際のフィールドはプライベートであり、ゲッター/セッターを介してアクセスを制御できるという事実。

于 2013-01-31T09:44:44.493 に答える