我有很多验证。我正在重构这段代码:
if is_manager?
# if cond1
# if cond2
# if cond3
end
if is_admin?
# if cond4
# if cond5
# if cond6
end
def is_user?
# if cond9
# if cond8
# if cond7
end
我想根据正在进行操作的用户类型应用不同的策略。我正在考虑为不同的用户创建策略,但我想知道如何避免所有这些if
。
我想出了类似的东西。
v = Validator.new # my context object
v.add(Validation::ManagerStategy.new) if is_manager?
v.add(Validation::AdminStategy.new) if is_admin?
v.add(Validation::UserStategy.new) if is_user?
v.validate()
但我不确定我是否以正确的方式实施它。