0

1 つのクラスにいくつかのメソッドがあり、それらすべてが同じフィールドを使用しているとします (例: ) studentNumber。このフィールドの値が必要になるたびに (利用可能で超低速ではないメソッドから) フェッチするか、それともプライベートとして定義して一度初期化する方がよいでしょうか?

パフォーマンスを考慮すると、後者の方が明らかに優れています。しかし、私の上司は常に、メソッドの外の世界とは独立して機能するようにメソッドを書くように努めるべきだと主張しています。

何か助けはありますか?

4

2 に答える 2

1

2 番目のアプローチには問題があります。それぞれのメソッドが共有リソース (フィールド) を変更できるため、メソッドは互いに依存するようになります。これは一般的なカップリングと呼ばれます (wiki から):

Common coupling (also known as Global coupling) is when two modules share
the same global data (e.g., a global variable).
Changing the shared resource implies changing all the modules using it.

それが私が最初のアプローチを好む理由です。

しかし、フィールドを としてマークし、クラス コンストラクターでそれに値を設定できればreadonly、監督者はそれで問題ないことに同意すると思います。

于 2013-07-09T06:40:23.080 に答える