Ini membutuhkan penjelasan rinci tetapi saya akan mencoba membuat sketsa perbedaan tersebut sebaik pengetahuan saya.
Pola adalah kesamaan yang Anda temukan dalam program. Ini memungkinkan kita untuk mendekonstruksi struktur kompleks yang besar dan membangun menggunakan bagian-bagian sederhana. Ini memberikan solusi umum untuk kelas masalah.
Perangkat lunak yang besar dan kompleks melewati serangkaian dekonstruksi pada tingkat yang berbeda. Pada tingkat yang lebih besar, pola arsitektur adalah alatnya. Pada level yang lebih kecil, pola desain adalah alatnya dan pada level implementasi, paradigma pemrograman adalah alatnya.
Suatu pola dapat terjadi pada tingkat yang sangat berbeda. Lihat Fraktal . Pengurutan cepat, Pengurutan gabungan adalah semua pola algoritmik untuk mengatur sekelompok elemen dalam urutan.
Untuk tampilan yang paling sederhana:
- Paradigma pemrograman - khusus untuk bahasa pemrograman
- Pola desain - memecahkan masalah yang berulang dalam konstruksi perangkat lunak
- Pola arsitektur - organisasi struktural fundamental untuk sistem perangkat lunak
Idiom adalah teknik pemrograman khusus paradigma dan bahasa yang mengisi detail tingkat rendah.
Pola desain biasanya dikaitkan dengan kesamaan level kode. Ini menyediakan berbagai skema untuk menyempurnakan dan membangun subsistem yang lebih kecil. Biasanya dipengaruhi oleh bahasa pemrograman. Beberapa pola menjadi tidak penting karena paradigma bahasa . Pola desain adalah taktik skala menengah yang menyempurnakan beberapa struktur dan perilaku entitas dan hubungannya.
Sedangkan pola arsitektur dipandang sebagai kesamaan pada tingkat yang lebih tinggi daripada pola desain. Pola arsitektur adalah strategi tingkat tinggi yang menyangkut komponen skala besar, properti global, dan mekanisme sistem.
Bagaimana pola diperoleh? Melalui:
- penggunaan kembali,
- klasifikasi
- dan akhirnya abstraksi untuk menyaring kesamaan.
Jika Anda telah mengikuti pemikiran yang diletakkan di atas. Anda akan melihat bahwa Singleton adalah "pola desain" sedangkan MVC adalah salah satu pola "arsitektural" untuk menangani pemisahan perhatian.
Cobalah membaca:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern