无废话C#设计模式之十七:Chain Of Resp
2009-04-02 08:23:09 来源:WEB开发网l GMDirector的处理流程就相对简单了,它并没有上级了,因此所有问题必须在它这里结束。对于没有回复的问题则进行回复,对于要求审核的问题则进行审核。
l 再来看看客户端的调用。首先,执行了InitGM()方法来初始化客服团队的数据,在这里我们的团队中有9个普通客服、2个客服经理和1个客服总监。普通客服只能回复分类1和分类2的问题,而客服经理只能回复分类3和分类4的问题。
l 然后,调用InitCOR()方法来初始化责任链,在这里我们并没有简单得设置普通客服的上级是客服经理、客服经理的上级是客服总监,而是自动根据是否有客服经理这个角色来动态调整责任链,也就是说如果没有客服经理的话,普通客服直接向客服总监汇报。
l 最后,我们模拟了一些问题数据进行处理。对于客户端(玩家)来说任何普通客服角色都是一样的,因此我们为所有问题随机分配了普通客服作为责任链的入口点。
l 首先来分析有客服经理时的处理情况。分类为1的问题直接由普通客服处理完毕。分类为2的重要问题由普通客服回复后再由客服经理进行审核。分类为3的问题直接由普通客服提交到客服经理进行处理。分类为4的重要问题也直接由普通客服提交到客服经理进行处理,客服经理回复后再提交到客服总监进行审核。分类为5的问题由普通客服提交到客服经理进行处理,客服经理再提交给客服总监进行处理。
l 再来分析没有客服经理时的处理情况。分类为1的问题直接由普通客服处理完毕。分类为2的重要问题由普通客服回复后再由客服总监进行审核。分类为3的问题直接由普通客服提交到客服总监进行处理。分类为4的重要问题也直接由普通客服提交到客服总监进行处理。分类为5的问题也直接由普通客服提交到客服总监进行处理。
更多精彩
赞助商链接