Продолжение темы про интерфейсы.
...Если мы хотим сделать интерфейс в функциональном стиле (с поддержкой иммутабельных значений), то Java и подобные языки это не позволят. Например, метод pop() для стека, согласно допустимой сигнатуре интерфейса стека, может возвращать только результат выдачи из стека, а где новый иммутабельный стек после обновления? Где-то в коде также должен быть определён явный конструктор, который создаёт пустой стек, но его придётся привязывать к конкретной реализации. А если push() возвращает новый стек с добавленным элементом, из его сигнатуры невозможно вывести, что новый стек должен быть такой же реализации, как и исходный стек.
Поэтому реализация интерфейсов в Java может быть только императивной.
Post #753
844
- 🤔 7
- 🔥 2
- 🫡 2
- ✍ 1