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.