乐正

Actions speak louder than words.

Sicp-ex2-76

问题

一个带有通用型操作的大型系统可能不断演化,在演化中常需要加入新的数据对象类型或者 新的操作。对于上面提出的三种策略——带有显示分派的通用性操作,数据导向的风格,以及 消息传递的风格——请描述在加入一个新类型或者新操作时,系统所必需要做的修改。哪种组 织方式最适合那些经常需要加入新类型的系统?哪种组织方式最适合那些经常加入新操作的 系统?

解答

在加入一个新类型时,数据导向风格的系统需要添加一个新的install-package;消息传 递风格的系统需要添加一个新的构造方法。在添加一个新的操作时,数据导向风格需要在所 有类型install-package中添加相应的操作并put;消息传递风格需要在对应的构造方法 中添加新的操作。

所以,数据导向风格更适合经营添加新类型的系统;而消息传递风格更适合经常加入新操作 的系统。

draft

« sicp-ex2-75 sicp-ex2-77 »

Comments