千家信息网

如何Python设计一个请假模式

发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,本篇文章为大家展示了如何Python设计一个请假模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。由于你没有用一些设计模式去优化你的代码,所以导致很多小伙伴只
千家信息网最后更新 2025年02月21日如何Python设计一个请假模式

本篇文章为大家展示了如何Python设计一个请假模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

由于你没有用一些设计模式去优化你的代码,所以导致很多小伙伴只能把自己的代码重写。这次我们通过请假条来讲讲设计模式-"职责模式"

一、什么是职责模式

比如我们要请假,我们一般都是写个请假条,然后提交给系统!系统会自动根据你的请假的情况,找对应的主管去审批。请假条处理的流程是一环接一环的,就像一个链条一样,所有处理请假条的人构成了一个职责链条。

职责模式:

  • 职责模式的精妙之处在于把请求者和接受者解耦了,就是做了分层处理!请求者不知道是谁处理请假条,不需要知道具体的业务逻辑和处理请假条的链上有多少人,它只管提交,这样的话系统的灵活性和扩展性就非常好,不信我们看实战案例。

二、实战案例

老板让程序员小李去设计一个请假系统,应该怎么设计呢,小李想了想就用上面的职责模式吧,二话不说先画一个UML图,把业务逻辑关系设计出来。

1).设计请假人类

我们把请假人抽象为一个对象,里面属性肯定是要有名字,请多少天,请假理由等等.所以Person接口的时候我们留了三个参数(name,dayoff,reason)。

这个类里面最关键的是setLeader()和request()函数:

  • setLeader的目的设置请假的提交给主管,但是具体是哪一级别的主管你不用管。

  • request的目的是把请假条扔出去,至于这个请假条哪一个级别的主管来批你也不用管,因为用handleRequest()这个函数来处理。

2).设计主管类

主管的角色有很多种,比如小组长,部门经理,部门总监,公司老总,HR, 行政总监等等。我们把这些人都抽象提取为一个基类叫主管类。

这个Manager类是基类,主要是处理get和set NextHandler.就是请假条在一个链条上,需要有一个一层一层提交的关系,比如组长的下一层nextHandler是部门经理,部门经理的下一层处理是公司老板。

3).具体的几个角色类

比如我们设计这个请假系统里面有TeamLeader,DeptMaanger,Director等等。

每个的权利不一样,比如:

  • 请假2天内的又TeamLeader审批

  • 请假2-10天有部门经理申请

  • 请假10-22天的有研发总监申请

我们举一个例子,比如小组长这个类。它主要是重写了handlerRequest这个类。(大家注意看Pycharm左边有一个蓝色的小圆圈,表示重写了父类的函数)

DeptMaanger也是类似的,主要在与审批的天数不一样。

HR的类主要是处理登记备案:

三、测试一下模型

经过了上面的类的重重设计,我们的模型应该可以运行了。我们用几个请假条来测一下看看:

>>

Leo 申请请假2天,请假理由:参加谷歌大会

同意Leo,请假。签字人:Eric,(小组长)

请假申请已经审核,情况属实!已备案处理.处理人Tina:行政总监

--------------------------------------------------

Susan 申请请假10天,请假理由:去欧洲旅游,还要去日本泡温泉

同意Susan,请假。签字人:Leo,(研发经理)

请假申请已经审核,情况属实!已备案处理.处理人Tina:行政总监

--------------------------------------------------

Lili 申请请假22天,请假理由:生病休息

同意Lili,请假。签字人:老王,(公司老板)

请假申请已经审核,情况属实!已备案处理.处理人Tina:行政总监

上述内容就是如何Python设计一个请假模式,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

处理 设计 假条 模式 主管 总监 职责 系统 经理 部门 情况 理由 公司 函数 小组 小组长 就是 签字人 老板 链条 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高中毕业计算机软件开发就业前景 计算机网络技术网络安全适合女生 编程与软件开发工作 局域网内ftp服务器 pg数据库哪个版本开始收费了啊 数字化网络安全基础 vue前端项目部署服务器 为什么洋葱数学的服务器瘫痪了 网络安全手抄报模板英语 张家口聊天软件开发企业 江阴电商软件开发定制价格 情鸽软件开发 2核4g 5m服务器做企业站 云数据库和本地数据库 贷款123服务器繁忙 家庭教育与网络安全的节目 泰安联想服务器代理店面 郑州康力网络技术有限公司 东营工具软件开发价格 南充孤恒互联网科技有限公司 风豹互联网科技是什么平台 烟台市网络安全职业技能大赛 服务器防护篡改 深圳市海德威软件开发 空间数据库设计包括哪些部分 江苏服务器维修电话 兼职软件开发人员 教育系统网络安全事件四级 高德地图位置服务器怎么使用 软件开发培训就业方向
0