Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML… You will find that this textbook uses a modular structure for flexible learning.