使用策略模式优化审批流程代码
// 定义策略类 class ApprovalWorkflowStrategy { constructor(data) { this.data = data } execute() { if (this.data.length > 1) { this.showFlowOptionDia() } else if (this.data.length === 1) { this.processDefinitionId = this.data[0].processDefinitionId this.addOrEditRecord() } else { this.showNotify() } } showFlowOptionDia() { this.flowOptionDia = true } addOrEditRecord() { // 具体实现省略 } showNotify() { this.$notify({ type: 'danger', message: '该模块未配置审批流程,请到流程中心配置审批流程!' }) } }
// 定义上下文类 class ApprovalWorkflowContext { constructor(strategy) { this.strategy = strategy } executeStrategy() { this.strategy.execute() } }
// 使用策略模式 const context = new ApprovalWorkflowContext(new ApprovalWorkflowStrategy(this.flowOptionData)) context.executeStrategy()
原文地址: https://www.cveoy.top/t/topic/lCZ2 著作权归作者所有。请勿转载和采集!