10.3 简化习语
在讨论更复杂的技术之前,看一些能够保持代码简明的基本方法是有帮助的。
10.3.1 信使
信使(messenger)[1]是这些方法中最微不足道的一个,它将消息封装到一个对象中到处传递,而不是将消息的所有片段分开进行传递。注意,没有信使,下面例子中的translate()的代码读起来将非常缺乏条理:
代码在这里做了简单化处理以防混乱。
既然信使的目标只是为了携带数据,可将这些数据安排为公有成员以便访问。然而,也有理由将这些数据设为私有成员。
10.3.2 收集参数
信使的大兄弟是收集参数(Collecting Parameter),它的工作就是从传递给它的函数中获取信息。通常,当收集参数被传递给多个函数的时候使用它,就像蜜蜂在采集花粉一样。
容器对于收集参数特别有用,因为它已经设置为动态增加对象:
收集参数必须有一些方法用来设置值或者插入值。注意,根据这个定义信使可以被当做收集参数来使用。问题的关键是收集参数通过接收它的函数进行传递和修改。
[1]这是Bill Venner取的名字,在其他地方有别的名称。