java生成:发奖金+收税+免税的升级版 整合发奖金、收税、免税三种计算需求(需求的变化) ; 各类金的计算方式越来越多(需求的变化)-工厂模式 员工的类别越来越多(需求的变化)-工厂模式 人的“头衔”变多了:如技术出生,但又从事管理工作(项目经理)(需求的变化)-装饰者模式 除了奖金的计算,还出现多种“金”的计算,如公积金计算、医保、社保等等计算(需求的变化)-策略模式
时间: 2023-06-18 10:07:10 浏览: 66
好的,根据你的需求变化,我可以给出以下的设计思路:
1. 发奖金、收税、免税的计算方法可以放在一个接口中,例如 ICalculate 接口,并分别实现不同的具体计算类。
2. 对于各类金的计算方式越来越多的情况,可以使用工厂模式,例如通过一个金的工厂类来统一生成各种金的计算类。
3. 对于员工的类别越来越多的情况,同样可以使用工厂模式,例如通过一个员工工厂类来统一生成各种员工类别的实例。
4. 对于人的“头衔”变多了的情况,可以使用装饰者模式,例如定义一个 Employee 类,然后通过不同的装饰者类(例如 ManagerDecorator)来为其添加不同的“头衔”。
5. 对于除了奖金的计算,还出现多种“金”的计算的情况,可以使用策略模式,例如定义一个 CalculateContext 类来调用不同的计算策略(例如公积金计算策略、医保计算策略)。
这样设计可以将各种需求变化解耦,方便扩展和维护。
相关问题
oracle 儒略日
在Oracle数据库中,儒略日是指将日期转换为从儒略历开始计算的天数。儒略日的起点被设定在公元前4713年1月1日格林威治时间12:00。每一天被赋予一个唯一的数字,从儒略历的起点开始顺序递增。例如,1996年1月1日的儒略日是2450084。这种日期表示方式考虑了太阳和月亮的轨道运行周期,以及当时收税的间隔。在Oracle中,可以使用相关函数将日期转换为儒略日,以及进行儒略日的相互转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [公历与儒略日的相互转化](https://blog.csdn.net/qq_30082785/article/details/125837616)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Oracle函数](https://blog.csdn.net/blood_Z/article/details/124858434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]