В ходе упражнения по программированию я хочу создать программное обеспечение Java для гипотетического магазина: у меня есть суперкласс User и три подкласса: администратор (который может управлять каталогом продуктов и списком клиентов), клиент (который выбирает продукты из списка). каталог, и система создает список, который будет показан сотруднику для продолжения оплаты) и сотруднику (который помогает клиенту с оплатой и, если нет проблем, наконец, отправляет клиенту электронное письмо). Очевидно, что это функции, которые я только что придумал, чтобы оправдать наличие трех разных типов пользователей.
Пользователь имеет атрибуты: идентификатор, адрес электронной почты, пароль. Атрибуты администратора: имя, фамилия, зарплата, номер телефона. Атрибуты сотрудника: зарплата. Атрибуты customer: имя, фамилия, дата рождения, профессия, место жительства.
Очевидно, что где-то в программном коде мне нужно создать новые экземпляры для каждому типу пользователей.
Почему и как мне следует использовать шаблон создания (абстрактная фабрика/метод фабрики) вместо параметризованных конструкторов трех подклассов?
Я думаю, что нет нужно, но вот код:
public class User{
private Integer id;
private String email;
private String password;
public User(Integer id, String email, String password) {
this.id = id;
this.email = email;
this.password = password;
}
//getter-setter
}
public class Customer extends User{
private String firstName;
private String lastName;
private String dateOfBirth;
private String profession;
private String residence;
public Customer(Integer id, String email, String password, String firstName, String lastName, String dateOfBirth, String profession, String residence) {
super(id, email, password);
this.firstName= firstName;
this.lastName= lastName;
this.dateOfBirth= dateOfBirth;
this.profession = profession;
this.residence = residence;
}
//getter-setter
}
//same for administrator and employee, just with different attributes
Подробнее здесь: https://stackoverflow.com/questions/785 ... -situation