ネタ心者歓迎!今更ながらにJava相談室 その3
■ このスレッドは過去ログ倉庫に格納されています
0298デフォルトの名無しさん
NGNG実装を変更してもインターフェイスを変更しないで済むように。
(そのクラスではあまり意味が無いと思うけど)
例えば、Xクラスの実装責任者が、なにかの都合でdataフィールド
の実装がintからIntegerに変えたとしても、それにあわせて
setData()とgetData()の実装を変更すれば、Xクラスを使用している
クラスの実装を変更する必要が無くなる。
もしXクラスを使用しているクラスがフィールドを直接よんでいた場合、
その全ての場所でX.dataと書いていたところをX.data.intValue()と
書き換えないといけなくなるわけで、それは、Xクラス内部で
getData()とsetData()だけ書き換えるのに比べると、保守性がよく
ないわけで。
そういう小さいクラスだとあまり価値を感じないかもしれないけど、
もっとややこしい構造になってくると、そういう実装してくれて
いるとありがたくなることが多いんだよ。ほんとに。
>>289
public クラスで無い場合、パッケージ外のクラスがそのクラスの参照
を作れなくなるだけで、どこからでもpublicメソッドは呼べる。
どこかにgetX()というメソッドでXクラスのインスタンス参照を返す
メソッドがあったら、getData()やsetData()がpublicであるなら、
getX().getData()やgetX().setData()はどこからでもできるわけ。
OK?
■ このスレッドは過去ログ倉庫に格納されています