《head first 设计模式》读书笔记

239 阅读2分钟

设计模式 - 《Head First 设计模式》读书笔记

第一章

需求:工单流转

​ 这是一个工单流转的需求,思路就是第一个人发起流程,然后经过层层审核最后反馈给发起人。

例如,发起人C发起一个工单,填写申请理由以后点击保存,这时工单便流转到了D,D审核过后流转到E,E做了终审最后反馈给发起人C。

​ 如果要使用设计模式的思想对这个业务流程进行设计,就需要思考其中的公共行为,特殊行为。进而如何设计类和接口,力求达到松耦合的状态。

​ 这里我的大致思路是:

  • 首先,人员可以进行一个抽象,抽象出一个Person超类,他们共有的属性大致包含:角色、所在单位、人员id。
  • 在处理工单的行为上,他们都可以拥有:查看工单。这个行为就是查看当前所有的信息。
  • 在处理工单的行为上,不同的是:发起人C只有申请工单的动作、审核人C、D都可以审核工单,但是他们审核时所填写的字段和内容是不同的,所以动作上可以分为:C申请工单、D审核工单、E审核工单。

简单的代码实现:


在行为上我们定义接口checkOrder(查看工单) 和 auditOrder(审核工单)

//查看工单
public interface checkOrder(){
    public void checkOrder();
}

//审核工单
public interface auditOrder(){
    public void checkOrder();
}

这里查看工单的行为都是一样的,只是在审核工单的环节不一样,那么如果C和D都实现auditOrder这个接口显然不合适。该怎么办?这里我们定义行为类,分别实现这个接口。

public class auditOrderC implements auditOrder{
    //C的审批填写对应字段
}

public class auditOrderD implements auditOrder{
    //D的审核填写对应的字段
}