Whether or not a design pattern should be used is easy for a trained eye to recognize. Design patterns are solutions for frequently recurring tasks in object-oriented software design. In this sense, they play a similar role to the multiplication tables that...