Функциональное программирование — это программирование, в котором функцию можно
- сохранить в переменную
- передать в качестве аргументов другим функциям
- вернуть как результаты функции и т. д.
Как известно, в Java функций как таковых нет. Есть только
- классы,
- методы
- и объекты классов.
Но в Java есть анонимные классы, то есть классы без имени, которые можно объявлять прямо в коде любого метода. Они и используются для реализации функционального программирования.
Зачем нужно функциональное программирование?
- Чтобы быстро писать код, он получается короче и лаконичнее,
- Чтобы облегчить отладку и тестирование, так как код значительно легче читать
- Чтобы писать код более подходящий для распараллеливания и работы в многопоточной среде.
- Код, написанный в функциональном стиле, несравненно легче масштабируется при увеличении нагрузки на вашу систему. Поэтому крайне важен для highload`а
История функционального программирования в Java
Классы/методы с именем
Сначала у нас были просто обычные классы с обязательными именами и обычные методы с именами
Классы без имени
Затем появились классы без имени – анонимные внутренние классы
Методы без имени
А теперь появились и методы без имени – их мы и называем лямбдами.