The Java Optional class: 11 more recipes for preventing null pointer exceptions

How to avoid Optional class antipatterns and design smells—all while streamlining application development

The Command Pattern in Depth

Packaging commands as objects and sending them to a receiver enables a clean, loosely coupled design that’s easy to maintain.

The Decorator Pattern in Depth

Add functionality to a class without modifying it.

The State Pattern

Elegantly manage state transitions without large switches or numerous if statements.

The Visitor Design Pattern in Depth

Perform one or more operations on a collection of different data types without disrupting existing code.

The Proxy Pattern

A good solution when you need to enable or mediate access to objects, either local or remote