Design patterns are a means to communicate, identify, and remember solutions to common problems. Each pattern names, explains, and evaluates a solution to a common problem. Each design pattern has four essential elements: Behavioral, Creational and Structural Diagram .