Design patterns Java workbook - Metsker, Steven John (Addison-Wesley, 2002)