Istilah design patterns dimulai di bidang perancangan bangunan oleh Christopher Alexander. Dalam bukunya A Pattern Language [Alex77], ia menerangkan pola-pola yang terdapat di dalam berbagai rancangan arsitektur bangunan. Arti design pattern diterangkannya dalam kalimat berikut:
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice [Alex77].
Design patterns adalah unsur-unsur rancangan yang seringkali muncul pada berbagai sistem yang berbeda. Setiap kemunculan ini menguji pattern tersebut di berbagai situasi. Ada juga yang mengartikan istilah design pattern sebagai sebuah solusi untuk mengulang masalah design. Solusi ini telah dikembangkan, dicompile, dan disaring oleh programmer yang sebelumnya telah menghadapi masalah ini. Design pattern pada dasarnya merupakan petunjuk atau langkah-langkah dalam menyelesaikan solusi, mirip seperti halnya dengan algoritma. Sebagai contoh : jika kita ingin melakukan sebuah operasi pencarian pada sebuah daftar bilangan, kita tidak perlu menyelesaikan dengan solusi kita sendiri, terdapat beberapa algoritma yang menyediakan fungsi searching ini seperti binary tree searching.
Perbedaan antara design pattern dan algoritma adalah algoritma fokus pada implementasi solusi. Sebuah algoritma biasanya me-list dari atas ke bawah menuju ke tahap akhir dengan statement yang terurut untuk menghasilkan sebuah solusi. Sedangkan design pattern menginformasikan kepada developer apa yang harus dilakukan, bukan bagaimana cara melakukannya.