Design pattern

A design pattern is a proven, reusable solution to a classic software design problem. Some of the best known are Singleton, Factory, Observer and MVC. They make code easier to structure, read and maintain.