オブジェクト指向の概念を教えれ
■ このスレッドは過去ログ倉庫に格納されています
0286228
NGNG継承だけの話というよりか,クラス設計者とクラス利用者の間の
契約の話ですかねぇ
その中に継承の話も含まれるんだけどね.
150は,
クラス利用者がクラスを自分のプログラムに最適化する過程で,
クラス設計者が想定した状況(クラス利用者に対して提示した契約)
を越えた範囲でオブジェクトを利用したくなる事態が発生するけど,
#例:オブジェクト同士の比較
#あと,継承したときの子クラスのインターフェースを制限したいとか
このときにオブジェクト指向言語だと(隠蔽などの機能により)
クラス設計者の権限が強いので,利用者はクラス設計者の掌の
なかでしかプログラミングできないのは不便だ.これはオブジェクトの
独立性やカプセル化等を前面に押し出したOOPの悪い癖じゃない?
といってるわけで.
当然クラス設計者にとってこのこと(想定した状況しか発生しないと
いうこと)は優れた利点であり,同時にOOPの利点でもあるんだけど,
クラス利用者にとって(他人が想定した状況しか作り出せないということは)
結構大変な制限になるから不自由なことになるんだよね.
言語仕様として,クラス設計者とクラス利用者の間の権限をどのへんで
バランスさせるか……難しいよねぇ
#まあ,(クラス)設計者は利用者の要望に応えるよう努力している
#けどね.例で出てきた比較の話だと,STLではデフォルト機能を利用して
#両対応してるし.でも,それとはちょっと違う話.
■ このスレッドは過去ログ倉庫に格納されています