SICP問題2.76
- 明白な振り分けを持つ汎用演算
- データ主導流
- メッセージパッシング流
について、
新しい型や新しい演算を追加する時、システムに施すべき変更は?
新しい型が絶えず追加されるシステムにはどの方法が最も適切か?
新しい演算が絶えず追加されるシステムには、どれが最も適切か?
明白な振り分けを持つ汎用演算の場合 新しい型の追加 全ての汎用演算手続きに新しい型の振り分け処理を追加する 新しい演算の追加 一つの演算を追加し、その中で型の振り分け処理、処理内容を追加する データ主導流の場合 新しい型の追加 既存の部分に変更はなく、新しい型のパッケージを作成し追加する 新しい演算の追加 既存の全てのパッケージに演算手続きを追加する メッセージパッシング流の場合 新しい型の追加 既存の部分に変更はなく、新しい型データオブジェクトを追加する。 新しい演算の追加 既存の全ての型データオブジェクトに演算手続きを追加する 新しい型が絶えず追加されるシステムにはメッセージパッシング流が適している。 新しい演算が絶えず追加されるシステムでは、どれも演算の追加が必要になるのであまり変わらないような……。