Gamma, Erich ;Helm,Richard and Johnson,Ralph

Design Patterns Elements of Reusable Object - Oriented Software - Massachusetts Addison- Wesley - 395