On the Practical Use of Design Patterns