利用多态实现薪资系统案例分析
1. 多态在设备驱动中的应用
多态在实现分层软件系统时特别有效。以操作系统为例,不同类型的物理设备操作方式可能差异很大,但对设备进行数据读写的命令却有一定的一致性。向设备驱动对象发送的写消息,需要根据该设备驱动的具体情况以及它对特定类型设备的操作方式来解释。不过,写操作本身与系统中对其他设备的写操作并无不同,都是将内存中的一定数量字节数据放置到设备上。
一个面向对象的操作系统可以使用抽象基类为所有设备驱动提供合适的接口。通过从这个抽象基类继承,形成操作方式相似的派生类。设备驱动提供的功能(即公共函数)在抽象基类中以纯虚函数的形式存在,而这些纯虚函数的实现则在对应特定类型设备驱动的派生类中完成。这种架构还能让新设备轻松添加到系统中,用户只需插入设备并安装其新的设备驱动,操作系统就能通过该设备驱动与新设备进行“通信”,因为该设备驱动拥有与其他所有设备驱动相同的公共成员函数,即抽象基类中定义的那些函数。
2. 薪资系统案例背景
一家公司按周给员工支付工资,员工分为三种类型:
- salaried employees(领固定薪水的员工):无论工作时长,每周领取固定工资。
- commission employees(按提成计薪的员工):工资为销售额的一定百分比。
- base - salary - plus - commission employees(底薪加提成的员工):领取底薪加上销售额的一定百分比作为工资。
在当前支付周期,公司决定给底薪加提成的员工的底薪增加 10%。公司希望实现一个 C++ 程序,以多态的方式进行薪资计算。
超级会员免费看
订阅专栏 解锁全文
6288

被折叠的 条评论
为什么被折叠?



