- - PR -
getter/setter
«前のページへ
1|2|3|4|5
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-22 10:56
私もほぼ同じです。 基本的に、 1.フィールドは全てprivate+get/setメソッドを作る 2.コンストラクタ内ではフィールドは直接操作 3.メソッドからはget/setメソッド使用 としています。
まさにそのとおりだと思います。 | ||||||||
|
投稿日時: 2004-09-22 11:27
いろいろとご意見ありがとうございました。
結論としては、今後も package private なクラスではアクセサを用意せず、フィールドを public で公開することにしました。 フィールドを直接操作するほうがシンプルだと考えました。フィールドの参照・代入は副作用がないことが明らかなので。アクセサを経由する場合、副作用の有無を確認するためにアクセサの実装を見なければいけなくなります。本来、内部実装を気にしなくていいようにカプセル化(アクセサによる隠蔽)を行うのですが、package private で扱うクラスの場合、関係が密で内部実装を把握していないとならないことも多いと思います。このような場合、アクセサによる隠蔽は逆効果で、必要以上に(内部実装の)見通しを悪くしてしまう、と判断しました。 | ||||||||
|
投稿日時: 2004-09-22 21:21
クラス設計自体を見直す(リファクタリングする)という選択肢も使えるようにしておいた方が良いと思います。
|
«前のページへ
1|2|3|4|5