java - 无法理解为什么代码违反了单一责任原则(在 Robert C. Martin 的“干净代码”一书中)
问题描述
我正在阅读 Robert C. Martin 的《清洁代码》一书。书上说这一段下的代码违反了单一责任原则但我不知道为什么!
Payroll.java
Public Money calculatePay(Employee e)
throws InvalidEmployeeType {
switch (e.type) {
case COMISSIONED:
return calculateCommissionedPay(e);
case HOURLY:
return calculateHourlyPay(e);
case SALARIED:
return calculateSalariedPay(e);
default:
throw new InvalidEmployeeType(e.type);
}
}
我认为“计算薪酬”只对首席财务官负责。所以,我认为这段代码不违反 SRP。然而,书上说不是。请问你能帮帮我吗?
解决方案
推荐阅读
- node.js - 节点没有渲染转译的 Angular 项目
- ansible - 嗨,有没有办法在 ansible 的同一任务中使用 2 个不同的变量文件?
- java - 我怎样才能连接这两个类?
- ruby-on-rails - 从另一个表(ruby rails)按行排序查询
- android - Nativescript -- 在警报和对话框中隐藏 Android 状态栏
- python - 比较不同List python中两个元组的项目
- c# - 使用端点时,ASP.NET Core(3.0) 上的标识不起作用
- android - 使用 CardView 和 ImageView 的圆角
- dask - 使用 dask 机会性缓存(或其他)避免 io 的策略
- r - 使用 fable 包的预测中的准确度表中只有 NaN