的法律我最近张贴在计算器的一个问题,我做了一件影响德米特
@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放入您的视图中。你会怎么做? –