Design Pattern – Pros and Cons
* Capture expertise and make it accessible to non-experts in a standard form .
* Facilitate communication among developers by providing a common language.
* Make it easier to reuse successful designs and avoid alternatives that diminish reusability.
* Facilitate design modifications.
* Improve design documentation.
* Improve design understandability.
In order to achieve flexibility, design patterns usually introduce additional levels of indirection, which might complicate the resulting designs and hurt application performance.