OOP设计问题

时间:2011-09-25 06:38:19

标签: oop design-patterns

得到了这个我想知道的面试问题:

一家软件公司设计了一个管理员工的应用程序,以及其他功能,计算薪水。

符合客户要求的当前结构是:

abstract Class Employee;
Class Manager extends Employee;
Class Engineer extends Employee;

现在,客户希望为每小时工资,月薪工作的员工添加支持不同类型工资计算的能力。工程师和经理都可以。

客户还告知软件公司,他们将来会增加一些其他类型的工资。

问题 - 你会如何设计?如果属于任何设计模式解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

应用策略模式:

http://en.wikipedia.org/wiki/Strategy_pattern

使“Salary_Calculation”成为与Employee关联的策略。 “Salary_Calculation”应该是一个接口或一个抽象基类,每个工资计算模型都是它的子类。

答案 1 :(得分:1)

使用工资类型添加SalaryCalculator接口并在Employee对象构造期间实例化SalaryCalculator对象。 SalaryCalculaotr对象将负责每种薪资类型的工资计算。