得到了这个我想知道的面试问题:
一家软件公司设计了一个管理员工的应用程序,以及其他功能,计算薪水。
符合客户要求的当前结构是:
abstract Class Employee;
Class Manager extends Employee;
Class Engineer extends Employee;
现在,客户希望为每小时工资,月薪工作的员工添加支持不同类型工资计算的能力。工程师和经理都可以。
客户还告知软件公司,他们将来会增加一些其他类型的工资。
问题 - 你会如何设计?如果属于任何设计模式解决方案吗?
谢谢!
答案 0 :(得分:7)
应用策略模式:
http://en.wikipedia.org/wiki/Strategy_pattern
使“Salary_Calculation”成为与Employee关联的策略。 “Salary_Calculation”应该是一个接口或一个抽象基类,每个工资计算模型都是它的子类。
答案 1 :(得分:1)
使用工资类型添加SalaryCalculator接口并在Employee对象构造期间实例化SalaryCalculator对象。 SalaryCalculaotr对象将负责每种薪资类型的工资计算。