You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to design patterns the lessons learned by those who've faced the same software design problems. With design patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challeng…