访问器方法

虽然这些类在冒险游戏中运行的足够好,但它们仍然是累赘的,因为设置了大量的 getset 访问器方法。让我们看看有什么补救措施。

替换掉 @description 实例变量的两个不同的方法,get_descriptionset_description

  1. puts(t1.get_description)
  2. t1.set_description("Some description")

取值和赋值也许更好一些,对于一个简单的变量使用下面的方式进行取值和赋值:

  1. puts(t1.description)
  2. t1.description = "Some description"

为了能够做到这一点,我们需要修改 Treasure 类的定义。实现这一点的方法是重写 @description 的访问器方法:

  1. def description
  2. return @description
  3. end
  4. def description=(aDescription)
  5. @description = aDescription
  6. end
accessors1.rb

我已经在 accessors1.rb 中添加了类似于上面的访问器。get 访问器被称为 descriptionset 访问器被称为 description=(即就是,将等号(=)附加到 get 访问器方法名后面)。现在,就可以将一个新的字符串进行赋值了:

  1. t.description = "a bit faded and worn around the edges"

你可以像这样取值:

  1. puts(t.description)