我目前正在重构一个包含800多行代码的用户模型(还有几百个已经通过mixin添加)。目前,模型中有相当多的方法,如下面的方法,仅用于根据某些特定标准识别用户类型。
def is_a_manager?
# logic to determine manager
end
def is_a_teacher?
# logic to determine teacher
end
def is_a_parent?
# logic to determine parent
end
def is_a_student?
# logic to determine student
end
def is_a_coach?
# logic to determine coach
end
def is_a_employee?
# logic to determine employee
end
重构此代码的最佳方法是什么?我应该把它放在一个问题中,并把它包括在课堂上吗?或者我应该将所有这些方法提取到它自己的单独的类中,例如UserIdentifier.new(user).is_teacher?
?或者这种重构完全没必要?
答案 0 :(得分:0)
您可以使用干燥概念来检查类型:
def method_name(user_type)
//logic example
type == user_type
end
调用方法如:
User.method_name("Teacher")
我希望这对你有所帮助。