Patterns in Java A catalog of reusable design patterns illustrated with UML - Grand Mark (Wiley, J., 1998)