public function writeProgram(Work $w) { if ($w->finish) { $w->setState(new RestState()); $w->writeProgram(); } else { if ($w->hour < 21) { echo sprintf('当前时间:%s 点 加班哦,疲惫至极%s', $w->hour, PHP_EOL); } else { $w->setState(new SleepingState()); $w->writeProgram(); } } }
public function writeProgram(Work $w) { if ($w->hour < 13) { echo sprintf('当前时间:%s 点 饿了,午饭;犯困,午休。%s', $w->hour, PHP_EOL); } else { $w->setState(new AfternoonState()); $w->writeProgram(); } }
public function writeProgram(Work $w) { if ($w->hour < 17) { echo sprintf('当前时间:%s 点 下午状态还不错,继续努力%s', $w->hour, PHP_EOL); } else { echo $w->setState(new EveningState()); $w->writeProgram(); } }
public function writeProgram(Work $w) { if ($w->hour < 12) { echo sprintf('当前时间:%s 点 上午工作,精神百倍%s', $w->hour, PHP_EOL); } else { $w->setState(new NoonState()); $w->writeProgram(); } }
<?php header('Content-Type:text/html;charset=utf-8'); /* * 状态模式【工作状态】 * Author: Kaysen */ define('ROOT_PATH', dirname(__FILE__)); require_once ROOT_PATH . '/../../Loader.php'; $emergencyProjects = new Work(); $emergencyProjects->hour = 9; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 10; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 11; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 12; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 13; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 14; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 17; $emergencyProjects->finish = false; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 19; $emergencyProjects->writeProgram(); $emergencyProjects->hour = 22; $emergencyProjects->writeProgram();