Интерфейсы против функций
От: varenikAA  
Дата: 05.11.20 02:38
Оценка:
Допустим, у нас есть сервис, который должен рассылать сообщения.
public Notificator(IEmailSender sender)

Мы внедряем зависимость через интерфейс
Теперь у нас связаны три сушности

    EmailSender
IEmailSender 
    Notificator


Отныне и навеки, так сказать.

Если же, сделать так:
type Notificator (sender: string -> string -> string -> bool) =
    if sender("guest@local", "hello", "who are you?") then


Получается, что функции высшего порядка делают код чище и проще, и интерфейсы тут как бы не особо уже нужны.
Достаточно набора функций, при наличии частичного применения и различные декораторы также становятся не нужны
ServiceUtils
    Notificator
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.