Freeman Eric. Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software - 2nd ed. - Shroff/O'Reilly 2020 ISBN: 978-9385889752