Setter 初始化

2006 年 2 月 9 日

使用 setter 初始化,您将构建一个空对象,然后使用 setter 方法在您进行时设置各种属性。(构造函数初始化 的替代方法。)

因此,要创建一个具有名字、姓氏和收藏夹酒吧集合的人,我们可能会看到类似的东西

#ruby
mf = Person.new
mf.firstname = 'Martin'
mf.lastname = 'Fowler'
mf.add_bar "Turner's Oyster Bar"
mf.add_bar "Square and Compass"

这种方法为您提供了连接对象的最高灵活性,允许您仅提供特定使用场景所需的协作者。

它使您不必一次设置所有值 - 如果某些对象仅在以后的时间可用,这将非常方便。

每个方法调用都很紧凑,这避免了构造函数的冗长参数列表和可供选择的不同构造函数数组的问题。

Marko Schulz 提醒我,setter 方法的名称解释了它们对新对象的用途 - 这是如今大多数语言中 构造函数初始化 的明显优势,因为它们只有位置参数。具有非常通用类型(字符串等)的构造函数参数很容易变得非常神秘。