# 題名にハンドル入れるのやめてほしい > SE 氏 変えちゃいました
# [1269] に返信してもよかったんだけどこっちにつなぐことにする
[1269] > これを次のように変更します。1行で済みます。
ものすごく近視眼的コメントがついていて思わず苦笑してしまったのだけど、
*** そういう範囲でしか変更がありえない ****
のであれば [1260] [1269] で提示のような修正もまぁあり、の範疇に収まります。
が、実世界においてはそういう局所な話ですまないことのほうが多く、
俺も (ぱ) 氏ももっとマクロな=大規模プログラムでの応用の話をしているわけです。
そういうレベルでは、提示のコードのような派生はうまくいきません。
そもそも OO (というか継承-派生というシステム) のおいしいところは
・「基底クラスを使う人」と「派生クラスを作る人」が分離できる
・基底クラス(のメンバー)を使う人は、派生クラスについて知らなくていい
・派生クラスを作る人は、基底クラス側で期待している動作(=契約)に反しない限り、
自動的に正しく使ってもらえる、と判断してよい
という点にあるのであって、
決して「ソースの再利用のためのテクニック」ではないのです。
http://kmaebashi.com/bbs/list.php?boardid=kmaebashibbs&thread=270
このへんとか。
基底クラスを使っている側にとって
基底クラス側が本来期待している挙動と異なる動きをするような派生クラス
というのはまずいのです。
しかも、基底クラスユーザと派生クラス作者はたいてい別人なのです。
基底クラスを使うソースファイルと派生クラスを作るソースファイルも別ファイルなのです。
[あたかも便利そうに見える] [が、正しく設計されているとは必ずしも言い切れない]
派生クラスを安直に作り、使ってしまうと
異なる開発者がいて、複数のファイルから構成されていて、各プログラマは自分の担当範囲しか理解しきれない
という大規模開発では見えにくい/直しにくいバグの元となります。
LSP (Liskov Substitution Principle) という概念も、この辺から来ています。
んで、マルチプルインスタンスの件のほうはもういいのでしょうか?
俺としては既に書いたとおり「対象読者層が異なる」というだけの話だと思っております。