generall repeatable solution to a commonly occuring problem in software design
general reusable solutions commonly occurring problems in detail design how components are built
reusing past solutions to design problems