• 大话设计模式 状态模式


    package org.ustc.statemode;
    
    public class Work {
    	private State state;
    	private boolean isFinished ;
    	
    	public Work() {
    		state = new MoningState();
    		setFinished(false);
    	}
    	public State getState() {
    		return state;
    	}
    	public void setState(State state) {
    		this.state = state;
    	}
    	public int getHour() {
    		return hour;
    	}
    	public void setHour(int hour) {
    		this.hour = hour;
    	}
    	private int hour;
    	public void writeProgram(){
    		state.writeProgram(this);
    	}
    	public void setFinished(boolean isFinished) {
    		this.isFinished = isFinished;
    	}
    	public boolean isFinished() {
    		return isFinished;
    	}
    }
    package org.ustc.statemode;
    
    public interface State {
    	public void writeProgram(Work w);
    }
    
    package org.ustc.statemode;
    
    public class MoningState implements State {
    	
    
    	@Override
    	public void writeProgram(Work w) {
    		// TODO Auto-generated method stub
    		if(w.getHour()<12)
    			System.out.println("精力充沛,time:"+w.getHour());
    		else{
    			w.setState(new AfternoonState());
    			w.writeProgram();
    		}
    	}
    
    	
    
    }
    

    package org.ustc.statemode;
    
    public class AfternoonState implements State {
    
    	@Override
    	public void writeProgram(Work w) {
    		// TODO Auto-generated method stub
    		if(w.getHour()<17)
    			System.out.println("下午犯困");
    		else{
    			w.setState(new EveningState());
    		w.writeProgram();
    		}
    	}
    
    }
    
    
    
    package org.ustc.statemode;
    
    public class EveningState implements State {
    
    	@Override
    	public void writeProgram(Work w) {
    		// TODO Auto-generated method stub
    		if(w.isFinished()==true){
    			w.setState(new RestState());
    			w.writeProgram();
    		}else{
    			if(w.getHour()<20)
    				System.out.println("好累");
    			else{
    				w.setState(new SleepState());
    				w.writeProgram();
    			}
    		}
    	}
    
    }
    
    
    
    package org.ustc.statemode;
    
    public class RestState implements State {
    
    	@Override
    	public void writeProgram(Work w) {
    		// TODO Auto-generated method stub
    		System.out.println("收工 下班咯");
    	}
    
    }
    
    
    
    package org.ustc.statemode;
    
    public class SleepState implements State {
    
    	@Override
    	public void writeProgram(Work w) {
    		// TODO Auto-generated method stub
    		System.out.println("不行了睡着了"+w.getHour());
    	}
    
    }
    
    
    
    package org.ustc.statemode;
    
    public class Main {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Work work = new Work();
    		//work.setHour(20);
    		//work.setHour(9);
    //		work.setHour(14);
    		work.setFinished(true);
    		work.setHour(20);
    		work.writeProgram();
    	}
    
    }
    
    
    
    
    


  • 相关阅读:
    数“1”游戏
    第二次冲刺期_每日站立会议_个人记录_文档
    第一次冲刺期——每日站立会议——个人记录——文档
    团队绩效
    其他小组对我们的评价汇总
    Sprint评分表
    大作业项目冲刺阶段(一)
    丹佛机场行李系统Postmortem
    团队项目测试计划
    SCRUM报告(1)
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3055226.html
Copyright © 2020-2023  润新知