的法律我最近張貼在計算器的一個問題,我做了一件影響德米特
@period_registration.period.event
然而,有人建議我做類似如下:
def event
period.event
end
@period_registration.event
我的一般意義是,這似乎有點蠻橫。查看此前的發帖How do I apply the Law of Demeter to this?顯示,如果您爲每個協會都這樣做,可能會變得多麼沉重。
如何實踐的常見的軌道,這是?我的想法是,即使這在技術上是正確的做法,如果它不是鐵路文化的一部分,那麼似乎這樣做會讓人們失望。而且,更重要的是,實際上讓代碼更容易維護,因爲其他開發人員認爲您正在使用所有這些幫助器方法浪費時間。
比方說,我想這impliment,將@ period_registration.event.city,其中城市是事件的屬性,而不是一個單獨的對象也違反毀滅之王或者我需要寫ANOTHER方法,所以我可以做的: @ period_registration.city
爲什麼要通過period_registration訪問城市? –
爲什麼要通過period_registration訪問城市?如果你爲每個協會都配置了這種訪問器,那就不是好設計。對於一些協會來說沒關係,但是對於所有這些都是不好的想法。 –
這是比其他任何事情都更好的例子。假設您已在控制器中擁有@period_registration,並且您希望將event.city放入您的視圖中。你會怎麼做? –