关键词:设计模式 state Java
//枚举:公文状态
enum State {
CREATING(){
@Override
public void handle(Document1 document) {
//公文创建中的处理代码
document.setState(CREATED);
System.out.println("公文已创建完成");
}
},
CREATED(){
@Override
public void handle(Document1 document) {
//公文创建完成的处理代码
document.setState(SEND_ONE_CHARGE);
System.out.println("公文已送二级主管");
}
},
SEND_ONE_CHARGE(){
@Override
public void handle(Document1 document) {
//公文发送二级主管处理代码
document.setState(SEND_SUPER_CHARGE);
System.out.println("公文已送一级主管");
}
},
SEND_SUPER_CHARGE(){
@Override
public void handle(Document1 document) {
//公文发送一级主管处理代码
document.setState(APPROVED);
System.out.println("公文已审批完成");
}
},
APPROVED(){
@Override
public void handle(Document1 document) {
//公文审批完成代码
System.out.println("公文已结束");
}
};
abstract void handle(Document1 document);
}
//公文类
class Document {
private State state;
public Document() {
state = State.CREATING;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public void handle() {
state.handle(this);
}
public static void main(String[] args) {
Document document = new Document();
document.handle();
document.handle();
document.handle();
document.handle();
document.handle();
}
}
/**
运行结果:
公文已创建完成
公文已送二级主管
公文已送一级主管
公文已审批完成
公文已结束
*/
上述尝试,请高手指正!谢谢!