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();
     }
 }
Exemple #5
0
<?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();