SICP 問題2.76(いろんな方法の比較)

問題

汎用演算を使った巨大システムが発展すると、新しいデータオブジェクトの型や、新しい演算が必要になる。三つの戦略─明白な振り分けを持つ汎用演算、データ主導流、メッセージパッシング流─のそれぞれにつき、新しい型や新しい演算を追加する時、システムに施すべき変更について述べよ。新しい型が絶えず追加されるシステムにはどの方法が最も適切か。新しい演算が絶えず追加されるシステムには、どれが最も適切か。

解答

論述は苦手だ。

新しい型や新しい演算を追加する時、システムに施すべき変更について

流儀 新しい型を追加 新しい演算を追加
明白な振り分け 全ての手続きの変更が必要。 その演算手続きを追加すればOK。
データ主導 パッケージを追加する。 追加しようとしている演算を必要とする型のパッケージ全てに演算の追加が必要。
メッセージパッシング 構成子を追加する。(演算処理も含まれるけど。) 追加しようとしている演算を必要とする型の構成子全てに演算の追加が必要。

新しい型が絶えず追加されるシステムに最も適切な方法

データ主導かメッセージパッシングか?

新しい演算が絶えず追加されるシステムに最も適切な方法

明白な振り分け?




う〜ん、正直よくわかりません。。なんとなくメッセージパッシングが好きだけど。