DESIGN PATTERNS FOR OBJECT ORIENTED SOFTWARE DEVELOPMENT - PREE,W. (ADDISON WESLEY, 2000)