예제 #1
0
 public override void Write(Work w)
 {
     if (w.Finish)
     {
         w.SetState(new RestState());
         w.Write();
     }
     else
     {
         if (w.Hour < 21)
         {
             Console.WriteLine("当前时间;{0}点加班工作", w.Hour);
         }
         else
         {
             w.SetState(new SleepingState()); w.Write();
         }
     }
 }
예제 #2
0
 public override void Write(Work w)
 {
     if (w.Hour < 13)
     {
         Console.WriteLine("当前时间;{0}点中午工作", w.Hour);
     }
     else
     {
         w.SetState(new AferNoonState()); w.Write();
     }
 }
예제 #3
0
 public override void Write(Work w)
 {
     if (w.Hour < 17)
     {
         Console.WriteLine("当前时间;{0}点下午工作", w.Hour);
     }
     else
     {
         w.SetState(new EveningState()); w.Write();
     }
 }
예제 #4
0
        static void Main(string[] args)
        {
            #region demo
            //Context c=new Context(new ConcreteStateA());
            //c.Request();
            //c.Request();
            //c.Request();
            #endregion
            Work ww = new Work();
            ww.Hour = 9;
            ww.Write();
            ww.Hour = 13;
            ww.Write();
            ww.Hour = 15;
            ww.Write();
            ww.Finish = false;
            ww.Hour   = 18;
            ww.Write();

            ww.Hour = 20;
            ww.Write();
            ww.Hour = 22;
            ww.Write();
            Console.Read();
        }