【C#重构】——职责链模式在下机实例中的应用

本文深入探讨职责链模式在请假审批流程中的应用,旨在减少操作失误,简化请假人操作。通过对比if-else判断,强调职责链模式的高内聚低耦合特性,尤其在应对需求变化时的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回顾职责链

经典问题:发请假协商 :

在这里插入图片描述

问题原因:请假人本身需要判断时间的多少来给相应的权限的人来发送请求。
改善目的:为了减少请假人错误发送,减少操作这边带来失误的影响,减少请假人的操作。
改善结构:请假人,只需要发送需要多长时间,请假原因就可以了。中间的处理过程需要程序自己完成,最后接受到的是请假的审批情况。

思考:当然这样的要求其实if-else判断也可以实现,为什么要用职责链?
需求更改1:增加一个审批级别:?使用if-else的结果就是再增加一个嵌套
需求更改2:调整审批顺序呢?比如一二级审批更换位置?使用if-else的结构就是需要删除修改部分代码。

其实这两个需求更改带来的问题职责链都可以解决,它的思想就是高内聚底耦合
如果增加:完全不用涉及到其他的审批级别
如果调顺序:完全不用删除修改大量的代码实现,只需要在调用部分更换上下级传递关系。
在这里插入图片描述
回顾UML图
在这里插入图片描述

实例代码的实现

推荐参考博客:
下机职责链应用
上机职责链应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
外观层调用
在这里插入图片描述
这里的上机时长、准备时长、至少上机时长,需要提前提供值进行传递。

学习过程多理解多体会,欢迎交流指正

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢美玲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值