Design Patterns Explained : A New Perspective on Object-Oriented Design - Shalloway, Alan; Trott, Jame R. (Addison-Wesley, 2005)