有时候我们真是滥用设计模式啊。例如下面的场景:
【场景】假设现在一个公司的请假流程如下:一天及以下由小组组长审批,一天以上三天以下由经理审批,三天以上七天以下由老板审批,七天以上直接劝退。
【实现】
// 调用
Employee::calLeave(4);
Employee::calLeave(4);
Employee::calLeave(4);
// 实现类
class Employee
{
public static function canLeave($day)
{
if ($day > 7) {
return false;
}
if ($day <= 1 && Checker::isGroupApprove()) {
return true;
}
if ($day > 1 && $day <= 3 && Checker::isManagerApprove()) {
return true;
}
return Checker::isBossApprove();
}
}
class Checker
{
public static function isGroupApprove()
{
return true;
}
public static function isManagerApprove()
{
return true;
}
public static function isBossApprove()
{
return true;
}
}