加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > Java > 正文

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());
      }

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读