Chapter 14. Functional Design Patterns
Functional programming’s answer to object-oriented design patterns is usually “just use functions instead.” Technically, that’s correct; it’s turtles all the way down1 with functional programming. However, coming from an object-oriented mindset wanting to augment your code with functional principles, more practical advice is required to utilize known patterns in a functional fashion.
This chapter will examine some of the commonly used object-oriented design patterns described by the “Gang of Four,”2 and how they can benefit from a functional approach.
What Are Design Patterns?
You don’t have to reinvent the wheel every time you need to solve a problem. Many of them have already been solved, or at least a general approach to a fitting solution exists in the form of a design pattern. As a Java developer, you most likely used or came across one or more object-oriented design patterns already, even if you didn’t know it at the time.
In essence, object-oriented design patterns are tested, proven, formalized, and repeatable solutions to common problems.
The “Gang of Four” categorized the patterns they describe into three groups:
- Behavioral patterns
-
How to deal with responsibilities of and communication between objects.
- Creational patterns
-
How to abstract the object creation/instantiation process, to help create, compose, and represent objects.
- Structural patterns
-
How to compose objects to form larger or enhanced objects.
Design patterns ...
Get A Functional Approach to Java now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.