加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第16章《状态模式》

发布时间:2020-12-13 20:56:12 所属栏目:百科 来源:网络整理
导读:/** @Author: cxh @CreateTime: 18/1/14 22:59 @ProjectName: JavaBaseTest */ public class AfterNoonState extends State { @Override void handler(Work work) { int curTime=work.time; if(curTime=18){ System.out.println("当前时间是:"+curTime+":00:

/**

  • @Author: cxh
  • @CreateTime: 18/1/14 22:59
  • @ProjectName: JavaBaseTest
    */
    public class AfterNoonState extends State {
    @Override
    void handler(Work work) {
    int curTime=work.time;
    if(curTime<=18){
    System.out.println("当前时间是:"+curTime+":00:00"+",效率一般的工作着");
    }else{
    work.setState(new NightState());
    work.working();
    }
    }
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/14 22:49
  • @ProjectName: JavaBaseTest
    */
    public class BeforeNoonState extends State {
    @Override
    void handler(Work work) {
    int currTime=work.time;
    if(currTime<12){
    System.out.println("当前时间是:"+currTime+":00:00"+",精力充沛的工作");
    }else{
    work.setState(new NoonState());
    work.working();
    }
    }
    }


/**

  • @Author: cxh

  • @CreateTime: 18/1/14 23:12

  • @ProjectName: JavaBaseTest
    */
    public class Client{
    //test
    public static void main(String[] args) {
    Work work=new Work();
    work.time=10;
    work.working();

     work.time=11;
     work.working();
    
     work.time=13;
     work.working();
    
     work.time=14;
     work.working();
    
     work.time=18;
     work.working();
    
     work.time=20;
     work.working();
    
     work.time=21;
     work.working();
    
     work.time=22;
     work.isFinished=true;
     work.working();

    }
    }



/**

  • @Author: cxh
  • @CreateTime: 18/1/14 23:00
  • @ProjectName: JavaBaseTest
    */
    public class NightState extends State{
    @Override
    void handler(Work work) {
    if(work.isFinished){
    System.out.println("今天工作已完成,准备回家~");
    return;
    }else{
    int curTime=work.time;
    System.out.println("当前时间是:"+curTime+":00:00,"+"继续加班,疲惫至极!!!");
    }
    }
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/14 22:59
  • @ProjectName: JavaBaseTest
    */
    public class NoonState extends State {
    @Override
    void handler(Work work) {
    int currTime=work.time;
    if(currTime<=13){
    System.out.println("当前时间是:"+currTime+":00:00"+",午饭后,休息中");
    }else{
    work.setState(new AfterNoonState());
    work.working();
    }
    }
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/14 22:40
  • @ProjectName: JavaBaseTest
    */
    public abstract class State {
    abstract void handler(Work work);
    }


/**

  • @Author: cxh

  • @CreateTime: 18/1/14 22:43

  • @ProjectName: JavaBaseTest
    */
    public class Work{
    //工作是否完成
    public boolean isFinished=false;
    //当前工作时间
    public int time;
    //工作状态
    private State state;
    Work(){
    state=new BeforeNoonState();
    }

    //设置工作状态
    public void setState(State state) {
    this.state = state;
    }

    //工作中
    public void working(){
    state.handler(this);
    }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读