EventBus 实现java状态机实例
发布时间:2023-02-20 11:04:21 所属栏目:Java 来源:互联网
导读:首先,了解状态机是什么,我们为什么需要状态机! 举个最简单例子,请假,作为一个最底层程序员,每次请假都要领导层层审批,而假有分为很多种,事假,病假,婚假,年休假等等,当然选择请的假不同,审批标准也不同,不同的假单需要走的审批链也不一样,比如
StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.leader_PERMIT_AGREE,new AnnualleaderAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.leader_PERMIT_disAGREE,new AnnualleaderdisAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.leader_PERMIT_MODIFY,new AnnualleaderPermitModifyStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.leader_PERMITING,new AnnualleaderPermitingStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.CEO_PERMIT_AGREE,new AnnualCEOAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.CEO_PERMIT_disAGREE,new AnnualCEOdisAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.CEO_PERMIT_MODIFY,new AnnualCEOPermitModifyStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.CEO_PERMITING,new AnnualCEOPermitingStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.PERMIT_SUCCESS,new AnnualPermitSuccessstatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.ANNUAL_LEAVE,Status.PERMIT_FAIL,new AnnualPermitFailStatusHandler()); } public static void registryMedicalPermitStatusHandler() { StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalPermitSubmitStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalleaderAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalleaderdisAgreeStatusHandler ()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalleaderPermitModifyStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalleaderPermitingStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,Status.HR_PERMIT_AGREE,new MedicalHrAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,Status.HR_PERMIT_disAGREE,new MedicalHrdisAgreeStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,Status.HR_PERMIT_MODIFY,new MedicalHrPermitModifyStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,Status.HR_PERMITING,new MedicalHrPermitingStatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalPermitSuccessstatusHandler()); StatusHandlerRegistry.registryStatusHandler(LeavePermitType.MEDICAL_LEAVE,new MedicalPermitFailStatusHandler()); } (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |