Функциональное программирование полиморфизм - PullRequest
0 голосов
/ 22 мая 2018

Как использовать полиморфизм и принципы 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).

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