読者です 読者をやめる 読者になる 読者になる

リスコフの置換原則違反のような

misc

ちょいと気になったので。
ActionScriptは全く知りません。すびばせん。

たとえば ActionScript の Loader なんかが良い例です。 Loader は DisplayObjectContainer を継承しているので表示ツリーを構成できるはずなのですが、これをやると例外が飛びます( Loader の中にはひとつだけ表示オブジェクトを内包できればいいので追加や削除ができる必要はないということ)。こういう対処がベターなのか、それとも設計に問題があるのか疑問に思います。

親の特性を引き継ぎたくない場合はエラーにするしかないのか? | いちばんやさしいゲームの作り方

継承されたオブジェクトは置換可能でなければならない。
即ち、BがAを継承しているのならば、Aと書かれているところはBに置換可能でなければならない。
という違反をしているような。=リスコフの置換原則に違反している
(この例だと、DisplayObjectContainerで書かれているところは、Loaderに置換可能で動作が変わってはならない)


いや、現実はそんなにうまくできてないんですけどね。orz...
ただ、親と同じ特性を引き継ぎたくないなら継承すべきではない、とは思いまする。
コンポジションとかー。

リスコフの置換原則 - Wikipedia