Design Patterns. Elements of Reusable Object-Oriented SoftwareErich Gamma, Ralph Johnson, John M. Vlissides, Richard Helm, Martin Fowler57,00 €