Java 枚举实现状态模式的一种尝试
关键词:设计模式? state? Java
? //枚举:公文状态
enum State { CREATING(){@Overridepublic void handle(Document1 document) {//公文创建中的处理代码document.setState(CREATED);System.out.println("公文已创建完成");} }, CREATED(){@Overridepublic void handle(Document1 document) {//公文创建完成的处理代码document.setState(SEND_ONE_CHARGE);System.out.println("公文已送二级主管");} }, SEND_ONE_CHARGE(){@Overridepublic void handle(Document1 document) {//公文发送二级主管处理代码document.setState(SEND_SUPER_CHARGE);System.out.println("公文已送一级主管");} }, SEND_SUPER_CHARGE(){ @Overridepublic void handle(Document1 document) { //公文发送一级主管处理代码document.setState(APPROVED);System.out.println("公文已审批完成");} }, APPROVED(){@Overridepublic 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();}}?
?
/**
运行结果:
公文已创建完成
公文已送二级主管
公文已送一级主管
公文已审批完成
公文已结束
*/
? 上述尝试,请高手指正!谢谢!
?