やっぱりオブジェクト指向は幻想でした。
■ このスレッドは過去ログ倉庫に格納されています
0642637
NGNG本当にわからないのか。
だったら書くけど。
たとえばC言語の場合、あるポインタで参照されるオブジェクトを
任意のビットイメージとしてアクセスすることは可能なので、
プログラムの複数の個所からそのオブジェクトを読み書きすることが
可能となる。
ある関数を実行すると、
そのオブジェクトにある特定の操作が行われる実装であるということを、
関数を利用する側が知っているとして、その実装に依存したコードを
呼び出し側で書いてしまうことは皆無とは言えない(たとえば、その
関数を呼び出すと、そのオブジェクトの初期化「も」やってくれると
「わかっている」ので、
(その関数本来の目的ではなく)オブジェクトの初期化のために
その関数を利用するというようなケース)。
要するに、副作用のある関数について、どこまでが契約範囲かが明瞭
ではないということ。ドキュメントに書かれていないことは仕様ではない、
という作業上のルールを作っても、
アンドキュメントな部分を根絶することは現実的にはまず無理だし、
ソースコードにアクセスできる奴は、
アンドキュメントな部分を利用する危険があるわけだよ。
■ このスレッドは過去ログ倉庫に格納されています