


/**
- @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);
}
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|