//工作状态 函数版
/*public class Main {
static int Hour = 0;
static boolean WorkFinished = false;
public static void WriteProgram() {
if(Hour < 12) {
System.out.println("当前时间:"+Hour+"点,上午工作,精神百倍");
}
else if(Hour < 13) {
System.out.println("当前时间:"+Hour+"点,饿了,午饭;犯困,午休。");
}
else if(Hour < 17) {
System.out.println("当前时间:"+Hour+"点,下午状态还不错,继续努力");
}
else {
if(WorkFinished) {
System.out.println("当前时间:"+Hour+"点,下班回家了");
}
else {
if(Hour < 21) {
System.out.println("当前时间"+Hour+"点,加班哦,疲累至极");
}
else {
System.out.println("当前时间"+Hour+"点,不行了,睡着了");
}
}
}
}
public static void main(String args[])
{
Hour = 9;
WriteProgram();
Hour = 10;
WriteProgram();
Hour = 12;
WriteProgram();
Hour = 13;
WriteProgram();
Hour = 14;
WriteProgram();
Hour = 17;
//WorkFinished = true;
WorkFinished = false;
WriteProgram();
Hour = 19;
WriteProgram();
Hour = 22;
WriteProgram();
}
}*/
//工作状态 分类版
/*class Work{
private int hour;
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
private boolean finish = false;
public boolean isFinish() {
return finish;
}
public void setFinish(boolean finish) {
this.finish = finish;
}
public void WriteProgram() {
if(hour < 12) {
System.out.println("当前时间:"+hour+"点,上午工作,精神百倍");
}
else if(hour < 13) {
System.out.println("当前时间:"+hour+"点,饿了,午饭;犯困,午休。");
}
else if(hour < 17) {
System.out.println("当前时间:"+hour+"点,下午状态还不错,继续努力");
}
else {
if(finish) {
System.out.println("当前时间:"+hour+"点,下班回家了");
}
else {
if(hour < 21) {
System.out.println("当前时间"+hour+"点,加班哦,疲累至极");
}
else {
System.out.println("当前时间"+hour+"点,不行了,睡着了");
}
}
}
}
}
public class Main {
public static void main(String args[])
{
Work w = new Work();
w.setHour(9);
w.WriteProgram();
w.setHour(10);
w.WriteProgram();
w.setHour(12);
w.WriteProgram();
w.setHour(13);
w.WriteProgram();
w.setHour(14);
w.WriteProgram();
w.setHour(17);
w.setFinish(true);
//w.setFinish(false);
w.WriteProgram();
w.setHour(19);
w.WriteProgram();
w.setHour(22);
w.WriteProgram();
}
}*/
//状态模式
/*abstract class State{
public abstract void Handle(Context context);
}
class Context{
private State state;
public Context(State state) {
super();
this.state = state;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
System.out.println("当前状态:");
}
public void Request() {
state.Handle(this);
}
}
class ConsreteStateA extends State{
public void Handle(Context context) {
// TODO Auto-generated method stub
context.setState(new ConsreteStateB());
}
}
class ConsreteStateB extends State{
public void Handle(Context context) {
// TODO Auto-generated method stub
context.setState(new ConsreteStateA());
}
}
public class Main {
public static void main(String args[])
{
Context c = new Context(new ConsreteStateA());
c.Request();
c.Request();
c.Request();
c.Request();
}
}*/
//工作状态 状态模式版
abstract class State{
public abstract void WriteProgram(Work w);
}
class Work{
private State current;
public Work() {
current = new ForenoonState();
}
private double hour;
public double getHour() {
return hour;
}
public void setHour(double hour) {
this.hour = hour;
}
private boolean finish = false;
public boolean isFinish() {
return finish;
}
public void setFinish(boolean finish) {
this.finish = finish;
}
public void SetState(State s) {
current = s;
}
public void WriteProgram() {
current.WriteProgram(this);
}
}
class ForenoonState extends State{
public void WriteProgram(Work w) {
// TODO Auto-generated method stub
if(w.getHour()<12) {
System.out.println("当前时间:"+w.getHour()+"点,上午工作,精神百倍");
}
else {
w.SetState(new NoonState());
w.WriteProgram();
}
}
}
class NoonState extends State{
public void WriteProgram(Work w) {
// TODO Auto-generated method stub
if(w.getHour()<13) {
System.out.println("当前时间:"+w.getHour()+"点,饿了,午饭;犯困,午休。");
}
else {
w.SetState(new AfternoonState());
w.WriteProgram();
}
}
}
class AfternoonState extends State{
public void WriteProgram(Work w) {
// TODO Auto-generated method stub
if(w.getHour()<17) {
System.out.println("当前时间:"+w.getHour()+"点,下午状态还不错,继续努力");
}
else {
w.SetState(new EveningState());
w.WriteProgram();
}
}
}
class EveningState extends State{
public void WriteProgram(Work w) {
// TODO Auto-generated method stub
if(w.isFinish()) {
w.SetState(new RestState());
w.WriteProgram();
}
else {
if(w.getHour()<21) {
System.out.println("当前时间"+w.getHour()+"点,加班哦,疲累至极");
}
else {
w.SetState(new SleepingState());
w.WriteProgram();
}
}
}
}
class SleepingState extends State{
public void WriteProgram(Work w) {
// TODO Auto-generated method stub
System.out.println("当前时间"+w.getHour()+"点,不行了,睡着了");
}
}
class RestState extends State{
public void WriteProgram(Work w) {
// TODO Auto-generated method stub
System.out.println("当前时间:"+w.getHour()+"点,下班回家了");
}
}
public class Main {
public static void main(String args[])
{
Work w = new Work();
w.setHour(9);
w.WriteProgram();
w.setHour(10);
w.WriteProgram();
w.setHour(12);
w.WriteProgram();
w.setHour(13);
w.WriteProgram();
w.setHour(14);
w.WriteProgram();
w.setHour(17);
w.setFinish(true);
//w.setFinish(false);
w.WriteProgram();
w.setHour(19);
w.WriteProgram();
w.setHour(22);
w.WriteProgram();
}
}
状态模式一步步实现
最新推荐文章于 2024-09-07 23:42:06 发布