0%

Book Description

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.

Technologist Richard Warburton, author of Java 8 Lambas, 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

Table of Contents

  1. Introduction
    1. What Object-Oriented and Functional Programmers Can Learn From Each Other
    2. What’s in This Report
  2. 1. Lambdas: Parameterizing Code by Behavior
    1. Why Do I Need to Learn About Lambda Expressions?
    2. The Basics of Lambda Expressions
      1. Method References
    3. Summary
  3. 2. SOLID Principles
    1. Lambda-Enabled SOLID Principles
    2. The Single-Responsibility Principle
    3. The Open/Closed Principle
      1. Abstraction
      2. Higher-Order Functions
      3. Immutability
    4. The Liskov Substitution Principle
    5. The Interface-Segregation Principle
    6. The Dependency-Inversion Principle
    7. Summary
  4. 3. Design Patterns
    1. Functional Design Patterns
    2. The Command Pattern
    3. Strategy Pattern
    4. Summary
  5. 4. Conclusions
    1. Object-Oriented vs. Functional Languages
    2. Programming Language Evolution
13.58.247.31