Software design pattern
= Software design pattern
A reusable organization of responsibilities and interactions for a recurring software-design problem. The <Memento pattern> separates snapshot creation/restoration from history management, while the <Decorator pattern> composes independent responsibilities behind one interface. A pattern specifies an arrangement rather than one mandatory class naming scheme.