Pattern Languages of Program Design 5 - Manolescu, Dragos-Anton , 1971-; Voelter, Markus.; Noble, James , 1967- (Addison-Wesley, 2006)