Ismétlődő megoldások általános problémákra. Olyan problémák megfolgalmazása, ami többszőr többféle alakban is, de azért hasonlóan felmerül. Ezekre próbál megoldásokat ismerteteni, mindegyiknek az előnyeit és hátrányait számbavenni.
A minták egyik része viszonylag triviális, sokan kitalálták már valahogy, de egyrészt egy Design Pattern leírás megpróbálja az összes előnyét és hátrányát megkeresni és megmondani milyen környezetben érdemes, és milyenben nem használni. Másrészt közös nyelvet is jelent. Nem kell magyarázni, hogy hát ezt olyan konstrukcióban oldottam meg, hogy… hanem azt kell mondani, hogy Strategy,
Singleton, Abstract Factory így és úgy.
Eredetileg Christopher Alexander (építész) írt egy könyvet, hogy milyen problémákra milyen mintákkal lehet válaszolni város tervezésekor (A Pattern Language: Towns, Buildings, Construction). Ez megtetszett néhány szoftver fejlesztőnek és ők is elkezdtek gondolkozni, hogy milyen minták vannak a programozásban. Igazán akkor terjedt el a fogalom, amikor a
Gang of Four (Négyek Bandája) megírta A design pattern könyvét, ami azóta is az alap.
A leirt mintak persze tetszoleges (
OOP) nyelvre ertendoek, nem csak
javara.