假设我正在创建薪资系统。工资额取决于很多事情。以下是一些对计算有影响的类系列:
员工类型:常规,合同等
时间记录类型:正常,加班等
位置:DeliverySite,ClientSite等
我想这三个家族每个都代表一个继承层次结构。但是,每个族类型都会对工资核算计算产生影响。
例如,在DeliverySite支付具有正常时间记录的常规员工将与在客户站点支付具有正常时间记录的常规员工不同。同时,在DeliverySite支付具有加班时间记录的常规员工将与在客户站点支付常规员工不同。等等。
我该如何建模?我正在考虑战略/责任链的某种组合,但我无法弄清楚实施的样子。
答案 0 :(得分:0)
Decorator模式能够为您添加到对象的每个图层添加新功能/计算。您可以在以后动态添加这些,而无需重构当前代码。
您从基础课开始,然后添加新的"层" (装饰)这个对象。
可以在此处找到使用Decorator模式的一个很好的示例:http://ima.udg.edu/~sellares/EINF-ES1/DecoratorToni.pdf