Object-oriented design patterns
In this section, we’ll review some of the GoF design patterns, check whether they are pertinent to FP, and study how to implement them. Of course, some design patterns don’t get an FP solution. As an example, there’s no equivalent for a Singleton, which implies the foreign concept of a globally accessed object. Additionally, while it’s true that you may no longer need OOP-specific patterns, developers will still think in terms of those. Also, since we’re not going fully functional, if some OOP pattern fits, why not use it even if it’s not fully functional?
We will be considering the following:
- Façade and Adapter to provide new interfaces to other code
- Decorator (also known as Wrapper) to add new functionality to existing code
- Strategy, Template, and Command to let you fine-tune algorithms by passing functions as parameters
- Dependency Injection to help in decoupling components and simplify...