[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: [jfriends]abstractクラスの方が有効な場合




In article <377a34bc.4221.16e6e11e6536c7e1@xxxxxxxxxx>
Shin wrote:
>しかし...そういう型の階層が確立されている状態で、継承ツリーの途中の
>ノード(class)にメソッドを追加することを考えるとinterfaceじゃ...
>って明日また考えます.

あんまり考えてませんが(面倒になってしまいました)、結論は
「interface階層の途中のノードへメソッド追加したい場合も、それを継
承した新interfaceを作る方法でそれを利用する側の手間をかけさせない
ようにすることは可能」
です.

今回の話は実装を含まない(がabstractメソッドを持たない)abstractク
ラスを公開インターフェイスとすることの是非について(だと思っている)
なので、上記のようなケースの場合もやはりインターフェイス追加に伴
う手間はabstractクラスによる公開インターフェイスでもinterfaceによ
るそれでもほとんど変わらないということです.
# 逆にコンパイル時や実行時のClassCastExceptionによるコーディング
# ミスの通知が行われないabstractクラスの方が危険であるとまで言っ
# てしまいます.

で、実装を含めて利用者側にインターフェイスを提供したい(継承させて
あげたい)場合で、しかも同じインターフェイスで別の実装を利用者が作
りたいという要求がないと判断した場合は、クラス(abstractの有無にか
かわらず)を公開インターフェイスとして提供するというところでどうで
しょう.

──────────────────
木下 信@イデア
──────────────────