Design Patterns and Principles
Designing an Interface
Purpose of an Interface
Introducing Functional Programming
Defining a Functional Interface
Implementing Functional Interfaces with Lambdas
Applying the Predicate Interface
Implementing Polymorphism
Distinguishing between an Object and a Reference
Casting Object References
Understanding Design Principles
Encapsulating Data
Creating JavaBeans
Applying the Is‐a Relationship
Applying the Has‐a Relationship
Composing Objects
Working with Design Patterns
Applying the Singleton Pattern
Creating Immutable Objects
Using the Builder Pattern
Creating Objects with the Factory Pattern
Summary