поскольку JS не поддерживает абстрактные классы или наследование, каждый раз, когда мы хотим добавить новый тип, который будет создан при использовании фабричного шаблона, нам придется модифицировать код, что означает, что мы нарушаем принцип открытия-закрытия. например, на снимке ниже — если мы хотим добавить новый тип сотрудника, такой как маркетинг, нам придется обновить оператор switch, что нарушает принцип открытия-закрытия. Есть ли обходной путь для использования фабричного шаблона без нарушения принципа открытия-закрытия?
function Accountant(){
console.log('I am accountant');
}
function Developer(){
console.log('I am developer');
}
function Sales(){
console.log('I am sales');
}
function CreateEmployee(employee){
switch(employee){
case('accountant'): return new Accountant();
case('developer'): return new Developer()
case('sales'): return new Sales();
}
}