ある A 用のコンテナの中に間違って B を登録すると、致命的なバグを引き起こすことが判っている。 しかし別のコンテナの中には B を登録したい。 A 用のコンテナと B 用のコンテナは、扱うデータが違うだけで、 ルーチンは全く同じだから共有したい。 規模が大きく、同じ物を2つ作るようなことは避けたい。
>>123 オブジェクトの型が分からない、ということはありません。 むしろ、全く正反対で、オブジェクトが自分自身のことをすべて知っていると考えられます。 C言語のソースで、変数の型を知っているのは、Emacsであって、変数nではありません。 Smalltalkでは n class として「print it」(結果を表示)すればnのクラス名が表示されますし、 n class inspect とすればnのクラスについて調べることが出来ます。
うーむ、copyFrom:に対して toは付随する構文にも見れるん ですが違うのかな? copyFrom x => x〜をコピー copyFrom x to y => x〜yをコピー (コピーするにはyが決定してないと駄目) to y => yまでを返す。 メソッドが独立だとすると、実際にはx以降全部をコピーし、 y以降を分断するって解釈になりますね。(効率が悪い?) もしかしたら copyFromTo x y とかの方が効率がよくなるとか(汗
SICPの序文にこうあるよね。 It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures. As a result the pyramid must stand unchanged for a millennium; the organism must evolve or perish.