在访问器方法中包装实例变量

时间:2015-06-13 10:59:08

标签: ruby instance-variables attr-accessor

Sandy Metz说(POODR书,第26页):

  

因为可以在方法中包装每个实例变量,并因此将任何变量看作是另一个对象,所以数据和常规对象之间的区别开始消失。

我不确定我是否明白她在解释什么。当我们定义访问器时,我们将实例变量(数据)包装在方法上,但方法不是对象。那么当她说我们可以将变量视为另一个对象时,她的意思是什么?

1 个答案:

答案 0 :(得分:0)

数据和对象之间的主要区别在于行为。对象可以修改其内部状态而不更改其接口,而数据是静态结构。

当我们在方法中包装数据访问时,我们获得了对象的相同好处 - 即使底层数据结构需要更改,接口仍然对消费者保持静态。