Object-Oriented vs. Functional Programming by Richard W PDF
Object-Oriented vs. Functional Programming – The schism between the functional and object-oriented programmers is really a false binary. Yes, the first group argues that FP is superior for a multicore world, while the second insists that OOP is better at matching technical solutions to business problems. However, as this O’Reilly report explains, this is not an either-or proposition.
This book discusses similarities between these programming paradigms and points out that both FP and OOP are actually moving closer toward one another. One prominent example is the use of lambda expressions in Java and other OOP languages such as C#, C++, and Swift.
By following examples written in Java, you will:
- Learn how lambdas (aka anonymous functions) make OOP languages better suited for dealing with parallelism and concurrency
- Understand how SOLID—OOP’s five basic principles of programming—map to functional languages and paradigms
- Explore some of the most common OOP design patterns—and how they exist in the functional world
Contents – Object-Oriented vs. Functional Programming
- What Object-Oriented and Functional Programmers Can Learn From Each Other
- What’s in This Report
- 1. Lambdas: Parameterizing Code by Behavior
- Why Do I Need to Learn About Lambda Expressions?
- The Basics of Lambda Expressions
- Method References
- 2. SOLID Principles
- Lambda-Enabled SOLID Principles
- The Single-Responsibility Principle
- The Open/Closed Principle
- Higher-Order Functions
- The Liskov Substitution Principle
- The Interface-Segregation Principle
- The Dependency-Inversion Principle
- 3. Design Patterns
- Functional Design Patterns
- The Command Pattern
- Strategy Pattern
- 4. Conclusions
- Object-Oriented vs. Functional Languages
- Programming Language Evolution
About the Authors – Object-Oriented vs. Functional Programming
- Richard Warburton is an empirical technologist, solver of deepdive technical problems, and works independently as a software engineer and trainer.