Scroll down
The most important knowledge of software patterns is the knowledge of when to apply them and when not to apply them...there is no one-size-fits-all solution..
in "97 Things Every Software Architect Should Know," edited by Richard Monson-Haefel, O'REILLY, www.oreilly.com, 2009, ISBN 978-0-596-52269-8