pola desain atau pola rancangan (bahasa inggris: design pattern) adalah sebuah istilah di dalam rekayasa perangkat lunak yang mengacu pada solusi umum yang bisa dipergunakan kembali atau berulang-ulang untuk menyelesaikan masalah-masalah yang umum terjadi dalam konteks tertentu atau khusus yang ditemui pada desain perangkat lunak.
sebuah pola desain yang sudah terbentuk bukan berarti desain tersebut dapat langsung digunakan untuk menulis program.
pola desain dapat di analogikan sebagai sebuah resep makanan yang dapat digunakan untuk membuat makanan, namun pada kenyataannya selera orang berbeda-beda sehingga untuk menggunkan resep tersebut agar menghasilkan makanan yang enak dan sesuai harus dilakukan penyesuaian dengan kebutuhan dan keadaan.
pola yang sudah dibangun diformulasikan sedemikian rupa untuk menemukan cara terbaik memecahkan masalah, namun tetap saja programmer harus menerapkan pola tersebut dengan pendekatan yang sesuai dengan konteks masalah yang sedang dialami, dengan penyesuaian terhadap kebutuhan.
ada banyak jenis pola desain.
pola strategi algoritma yang menangani masalah yang berkaitan dengan strategi tingkat tinggi yang menggambarkan bagaimana memanfaatkan karakteristik aplikasi pada platform komputasi.
pola desain komputasi menangani masalah yang berkaitan dengan identifikasi perhitungan kunci atau id.
pola eksekusi berkaitan dengan hal-hal yang mendukung proses eksekusi aplikasi, termasuk strategi untuk melaksanakan alur tugas dan blok bangunan untuk mendukung tugas sinkronisasi.
pola strategi implementasi menangani masalah terkait dengan pelaksanaan kode untuk mendukung organisasi program dan struktur data umum khusus untuk pemrograman paralel.
pola desain struktural menangani masalah yang berkaitan dengan struktur tingkat tinggi aplikasi yang dikembangkan.
pola pertama kali digunakan sebagai konsep arsitektur oleh christopher alexander ( 1977-1979 ) . pada tahun 1987 , kent beck dan ward cunningham mulai bereksperimen dengan ide menerapkan pola pemrograman dan mempresentasikan hasil mereka pada konferensi oopsla tahun itu.
dalam tahun-tahun berikutnya, beck, cunningham dan lain-lain melanjutkan pekerjaan ini.
desain pola mendapatkan popularitas dalam ilmu komputer setelah buku design pattern: elements of reusable object-oriented software diterbitkan pada tahun 1994 oleh apa yang disebut "gang of four " ( gamma et al . ), yang sering disingkat sebagai "gof".
pada tahun yang sama, konferensi pertama pola bahasa pemrograman diadakan dan tahun berikutnya, portland pattern repository didirikan untuk dokumentasi pola desain.
buku referensi penting dalam pola desain meliputi:
gamma, erich; richard helm, ralph johnson, and john vlissides (1995).
design patterns: elements of reusable object-oriented software.
buschmann, frank; regine meunier, hans rohnert, peter sommerlad (1996).
pattern-oriented software architecture, volume 1: a system of patterns.
john wiley &
sons. isbn 0-471-95869-7.
schmidt, douglas c.; michael stal, hans rohnert, frank buschmann (2000).
pattern-oriented software architecture, volume 2: patterns for concurrent and networked objects.
john wiley &
sons. isbn 0-471-60695-2.
fowler, martin (2002).
patterns of enterprise application architecture.
hohpe, gregor; bobby woolf (2003).
enterprise integration patterns: designing, building, and deploying messaging solutions.
freeman, eric t; elisabeth robson, bert bates, kathy sierra (2004).
head first design patterns.
meskipun pola desain telah diterapkan praktis untuk waktu yang lama , formalisasi konsep pola desain mendekam selama beberapa tahun .
ilmu desain grafis