Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter SoftwareRalph Johnson