设计模式之模板方法模式

背景

最近在做一个商管系统,有这样一个场景,当操作员提交审核后,需要创建一个待办信息,当具有审核权限的管理员登录系统后,在首页展示一个待办消息提示,当管理员审核通过后,又会创建新的待办信息,当具有二级审核权限的管理员登录系统后,同样可以看到一个待办消息,同理,如果审核未通过,也需要创建一个待办信息给提交资料的操作员,当操作员登录系统时,提示其去修改资料再次提交,此外,当待办事件处理完成后,需要将该待办信息更新为已经处理完成,背景表述完毕。

 

分析

以创建待办为例,根据需求的背景来分析,从提交到初审、复审等操作完成后生成待办的流程是固定的,只是待办的内容部分不同而已,也就是整体的格式是固定的,内容根据不同的步骤来填充不同的信息,因此,可以使用模板方法模式来实现该功能。

 

实现

首先创建一个抽象类,代码示例如下:

abstract public class Pending {

    /**
     * 生成待办信息
     *
     * @param pendingEnum 待办事件类型
     * @param id          待办业务编号
     */
    public void pending(PendingEnum pendingEnum, String id) {
        Pending pending;
        switch (pendingEnum) {
            case REVIEW_COMMIT:
                pending = new ReviewCommit();
                break;
            case FIRST_TRIAL:
                pending = new FirstTrial();
                break;
            case REVIEW_TRIAL:
                pending = new ReviewTrial();
                break;
            default:
                return;
        }
        //生成待办信息:在子类中根据不同的业务场景,实现生成对应的待办信息
        pending.createPending(id);
    }

    /**
     * 生成待办信息
     *
     * @param id
     */
    public abstract void createPending(String id);
}

 

然后通过具体的子类来实现待办信息的生成过程,代码示例如下(选一):

public class ReviewCommit extends Pending {
    @Override
    public void createPending(String id) {
        //TODO
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值