The modern view on implementation of classic design patterns in Java
summary
Argues that Java 8 features materially change pattern choices and shows runnable code: a Spring example where dependency injection kills singleton, two builder styles (runtime vs. accumulator), prototype uses for immutable domain objects, factory methods replaced by constructor references replace factory classes, adapter examples converting Runnable to Consumer and Executor, proxies built by chaining Consumers, template-method replaced by injected Function for storage, commands as lambdas, streams replacing iterators, and that lambdas replace many behavioral patterns.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 6:54Singleton pattern modern view
- 11:56Builder evolution and options
- 17:52Prototype usage
- 23:37Factory Method and Abstract Factory
- 27:50Adapter simplification with Java 8
- 31:44Proxy new approaches
- 36:38Template Method and functionality
- 41:19Command pattern rejection
- 42:45Chain of Responsibility anti-pattern
- 44:33Strategy flexible algorithms
- 46:40Iterator streams instead of iterators
- 49:09Decorator function wrapping
- 51:15Visitor modern implementation
- 54:39Conclusion and tips
related talks
52mThe modern view on implementation of design patterns (RU)
01h 03mJava Design Patterns 2022
55mRevisiting Design Patterns After 20
45mRevisiting Design Patterns after 20
02h 41mDesign Patterns Revisited in Modern Java
02h 47mSpring Patterns for Grown-Ups
35mThe League of Extraordinary Antipattern
48mOOP revisited
