難道這讓這裏的其他人難堪嗎?我寧願看到:將getter和setter命名爲「get ...」和「set ...」有什麼好處?
block.key(newKey); // set the key for this block
和
testKey = block.key(); // look up the key for this block
比
block.setKey(newKey); // set the key for this block
testKey = block.getKey(); // look up the key for this block
首先, 「設置」 和 「得到」 是多餘的(因此增加噪聲降低可讀性) 。動作(set/get)由每個語句的語法定義。我瞭解超載。實際上,使用相同的確切標識符強化了這些與對象相同的屬性。當我讀「getKey()」和「setKey()」時,我可能不太確定。其次,如果「get」和「set」被嚴格解釋爲setter和getter,那麼如果其他語義與設置/獲取值相關聯,例如副作用將會令人驚訝。
我想這個偏差來自我的Smalltalk背景,但是在一個多態性正常運行的世界裏,如果沒有「get」和「set」散落在哪裏,我們會不會更好?想想如果我們不必一遍又一遍地輸入這三個字母,我們可以輸入多少代碼? (舌頭有點臉頰)
有人在那裏有同樣的感覺嗎?
我真的不認爲語言不可知標籤適用。 Java是使用該慣例的主要語言。其他人喜歡C#,Delphi等傾向於擁有真實的屬性。 – NotMe 2009-08-05 02:00:59