10.3 简化习语

在讨论更复杂的技术之前,看一些能够保持代码简明的基本方法是有帮助的。

10.3.1 信使

信使(messenger)[1]是这些方法中最微不足道的一个,它将消息封装到一个对象中到处传递,而不是将消息的所有片段分开进行传递。注意,没有信使,下面例子中的translate()的代码读起来将非常缺乏条理:

10.3 简化习语 - 图1

10.3 简化习语 - 图2

代码在这里做了简单化处理以防混乱。

既然信使的目标只是为了携带数据,可将这些数据安排为公有成员以便访问。然而,也有理由将这些数据设为私有成员。

10.3.2 收集参数

信使的大兄弟是收集参数(Collecting Parameter),它的工作就是从传递给它的函数中获取信息。通常,当收集参数被传递给多个函数的时候使用它,就像蜜蜂在采集花粉一样。

容器对于收集参数特别有用,因为它已经设置为动态增加对象:

10.3 简化习语 - 图3

收集参数必须有一些方法用来设置值或者插入值。注意,根据这个定义信使可以被当做收集参数来使用。问题的关键是收集参数通过接收它的函数进行传递和修改。

[1]这是Bill Venner取的名字,在其他地方有别的名称。