Abstract :
Software design patterns describe proven solutions to recurring software design problems. Knowledge of these patterns increases designers´ abilities, leads to cleaner and more easily maintained software, speeds up implementation and test, and helps programmers document and communicate their designs. This paper catalogues over 100 general-purpose design patterns. The organizing principle of the catalogue is the use of patterns, i.e., the problems they solve. Other considerations, such as whether a pattern is behavioral or structural, how it is implemented, or whether it is high or low level, are secondary, because these aspects are less important for a designer looking for a solution to a design problem. The catalogue collects general-purpose patterns from a variety of sources. It includes older patterns such as Module and Layers as well as modern, object-oriented patterns such as Observer and Visitor
Keywords :
object-oriented methods; software maintenance; software reusability; Layers; Module; Observer; Visitor; behavioral pattern; catalogue; general purpose software design patterns; object oriented patterns; program testing; software maintenance; structural pattern; Electrical capacitance tomography; Electronic switching systems; Identity-based encryption; Organizing; Programming profession; Reactive power; Read only memory; Software design; Testing; Yarn;