In this chapter, I present some of the criticisms of design patterns. Reading about the criticisms can offer you some real value. If you think critically about patterns before you design your software, you can predict your “Return on Investment” to some degree.
Design patterns basically help you benefit from other people’s experience. I term this as experience reuse. You learn how they solved challenges, how they tried to adapt to new behaviors in their systems, and so on. A pattern may not perfectly fit into your work, but if you concentrate on the best practices ...