设计模式 - 《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的审核填写对应的字段
}