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