Anda menyebutkan kedua pola desain dan kopling. Ini adalah konsep yang terpisah jadi saya akan membahasnya secara terpisah. Satu-satunya hubungan nyata adalah bahwa pola desain cenderung mempromosikan kopling longgar (karena ini merupakan aspek utama dari desain yang baik).
Pola desain
Konsep Pola Desain sebenarnya cukup sederhana: Mereka hanya seperangkat template tentang cara menangani berbagai masalah umum. Ada 2 alasan utama mengapa mereka populer:
- Mereka 'terbukti': mereka telah digunakan sebelumnya berkali-kali dan manfaat / kelemahan dari masing-masing umumnya diketahui, khususnya setiap masalah halus yang mungkin menyebabkan masalah besar diketahui.
- Mereka menyediakan seperangkat istilah umum, dan dengan demikian memungkinkan komunikasi yang lebih mudah. Jika seseorang mengatakan "kelas X memainkan peran pengamat dalam pola pengamat" maka pengembang yang terbiasa dengan pola tersebut dapat segera memahami apa yang terjadi.
Bagaimana Anda tahu bahwa Anda telah menerapkannya dengan benar? Itu rumit. Untuk sebagian besar pola itu sederhana - Anda telah mengguncangnya atau belum. Beberapa pola kurang terdefinisi dengan jelas daripada yang lain - misalnya model-view-controller . Pola seperti itu lebih baik digunakan sebagai pedoman umum. Spesifik bagaimana Anda menerapkannya kurang penting daripada memahami alasan bahwa pola itu ada dan apa yang ingin dicapai.
Pola desain bukan 'satu-satunya jalan yang sebenarnya'. Seringkali Anda perlu menyesuaikannya untuk tujuan spesifik Anda, atau kadang-kadang tidak ada pola yang sesuai dengan persyaratan. Memaksa pola desain yang tidak cocok adalah ide yang buruk; itu seperti menggunakan palu yang sangat bagus ketika apa yang Anda inginkan sebenarnya adalah obeng.
Kopel
Ini adalah ide yang sangat penting dalam ilmu komputer. Karena persyaratan untuk sebagian besar proyek perangkat lunak berubah seiring waktu (kadang-kadang secara signifikan) maka kemampuan desain untuk mengatasi perubahan adalah penting. Coupling pada dasarnya adalah ukuran "seberapa sulitkah untuk menukar komponen ini dengan yang lain?" 'Komponen' dapat berupa metode, kelas, paket, pustaka, dll.
Ada berbagai jenis sambungan yang tercantum dalam artikel Wikipedia ini .