Как использовать полиморфизм и принципы SOLID в функциональном программировании?
Пример - у меня разные классы для полей разного типа.вот так:
class Textfield {
setDefaultValue(){ .. code}
setValue(){...}
...
}
class PasswordField {
setDefaultValue(){ return false; }
}
В ООП это легко - просто добавьте другой класс, например "SelectField", добавьте методы, и это будет работать.
Но в FP как это сделать: ПервыйЭто выглядит так:
function setDefaultValue(field) {
if (field.type == 'textfield')...
else if (field.type == 'passwordfield')..
}
Но это нарушает принцип Open-Closed, потому что если я хочу добавить другое поле "SelectField", мне нужно изменить операторы if.
Есть ли лучшеспособ сделать это (код является последним JavaScript).