ООП Дизайн Вопрос - PullRequest
       3

ООП Дизайн Вопрос

5 голосов
/ 25 сентября 2011

Получил этот вопрос для интервью, который меня интересует:

Компания-разработчик программного обеспечения разработала приложение, которое управляет сотрудниками и, помимо прочих функций, рассчитывает зарплату.

Текущая структура, которая соответствуеттребования клиента:

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

Теперь клиент хотел бы добавить возможность поддержки различных типов расчета заработной платы для сотрудников, работающих на почасовой заработной плате, ежемесячной заработной плате.И Инженер, и Менеджер могут быть либо.

Заказчик также уведомил компанию-разработчика программного обеспечения о том, что в будущем он добавит ряд других типов зарплат.

Вопрос - Как бы вы это разработали??Входит ли в какое-либо дизайнерское решение?

Спасибо!

Ответы [ 2 ]

7 голосов
/ 25 сентября 2011

Применить шаблон стратегии:

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

Сделать "Salary_Calculation" стратегией, связанной с Сотрудником.«Salary_Calculation» должен быть интерфейсом или абстрактным базовым классом, и каждая модель расчета заработной платы является подклассом этого.

1 голос
/ 25 сентября 2011

Добавление интерфейса SalaryCalculator и создание экземпляра объекта SalaryCalculator во время конструирования объекта Employee с использованием типа зарплаты.Объект SalaryCalculaotr позаботится о расчете зарплаты для каждого типа зарплаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...