哪个更有效,案例I还是II?
案例I:
before_filter :validator, only: :test1
before_filter :parser, only: :test2
def test1
<some code>
end
def test2
<some code>
end
private
def validator
<condition1>
end
def parser
<condition2>
end
案例II:
before_filter :validator
def test1
<some code>
end
def test2
<some code>
end
private
def validator
if params[:action] == 'test1'
<condition1>
end
if params[:action] == 'test2'
<condition2>
end
end
答案 0 :(得分:1)
案例1效率更高,但不是因为它运行得更快。您可以benchmark them确定,但他们几乎肯定有非常相似的资源要求。
#1更有效的原因是因为它减少了显影剂应变。例如,它更明显地表达了您的意图。它可以更有机地增长,并且更容易编写测试。案例2增加的复杂性将使测试和长期维护变得更加困难,从而对项目产生负面影响。