While implementing a solution to a programming problem, you realize that the problem has a solution represented by a common design pattern. Therefore, you should always ref