Design Patterns — Gang of Four

In software engineering, many problems repeat themselves across applications, domains, and technologies. Design Patterns provide proven…