/**
- @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);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。