Setter 初始化
2006 年 2 月 9 日
使用 setter 初始化,您可以建構一個空物件,然後使用 setter 方法來設定各種屬性。(ConstructorInitialization 的替代方案。)
因此,要建立一個具有名字、姓氏和最愛酒吧清單的人,我們可能會看到類似以下的內容
#ruby mf = Person.new mf.firstname = 'Martin' mf.lastname = 'Fowler' mf.add_bar "Turner's Oyster Bar" mf.add_bar "Square and Compass"
這種方法讓您在連結物件時擁有最大的彈性,讓您只需提供特定用途所需的合作者即可。
它讓您不必一次設定所有值,這在某些物件只能在稍後取得時很方便。
每個方法呼叫都很簡潔,這避免了建構函式的長參數清單和必須從中選擇的各種建構函式陣列的問題。
馬可·舒爾茲提醒我,setter 方法有說明其對新物件用途的名稱,這在當今大多數只有位置參數的語言中,比 ConstructorInitialization 具有顯著優勢。具有非常一般類型(例如字串等)的建構函式參數很容易變得非常難以理解。