Kapan menggunakan pola desain yang mana? [Tutup]

104

Saya sangat menyukai pola desain, tetapi saya merasa sulit untuk melihat kapan saya bisa menerapkannya. Saya telah membaca banyak situs web yang menjelaskan pola desain. Saya memahami sebagian besar dari mereka, tetapi saya merasa sulit untuk mengenali pola dalam situasi saya sendiri.

Jadi, itulah mengapa saya menanyakan pertanyaan ini. Apakah ada pedoman / tanda peringatan kapan harus menggunakan pola desain yang mana.

Misalnya, jika Anda melakukan pernyataan sakelar untuk menentukan objek mana yang perlu Anda buat, Anda mungkin ingin menggunakan pola desain pabrik. Jadi pernyataan sakelar dalam hal ini adalah 'bel alarm' untuk menggunakan pola Pabrik.

Jadi, apakah Anda tahu lebih banyak tentang 'lonceng alarm' untuk menentukan pola desain?

Martijn
sumber
6
Biasanya deskripsi pola yang saya lihat menyertakan deskripsi situasi di mana Anda menginginkan pola desain tersebut.
R. Martinho Fernandes

Jawaban:

99

Biasanya prosesnya sebaliknya. Jangan mencari situasi di mana menggunakan pola desain, cari kode yang dapat dioptimalkan. Jika Anda memiliki kode yang menurut Anda tidak terstruktur dengan benar. cobalah untuk menemukan pola desain yang akan menyelesaikan masalah.

Pola desain dimaksudkan untuk membantu Anda memecahkan masalah struktural, jangan mendesain aplikasi Anda hanya untuk dapat menggunakan pola desain.

Joep Killaars
sumber
23
Bukan hanya masalah struktural, tetapi juga masalah perilaku dan kreasi.
DevDemon
1
Pola desain dapat mempercepat proses pengembangan dengan menyediakan paradigma pengembangan yang teruji dan terbukti. Desain perangkat lunak yang efektif membutuhkan pertimbangan masalah yang mungkin tidak terlihat sampai nanti dalam implementasi. Menggunakan kembali pola desain membantu mencegah masalah halus yang dapat menyebabkan masalah besar dan meningkatkan keterbacaan kode untuk pembuat kode dan arsitek yang terbiasa dengan pola tersebut.
SaddamBinSyed
5

Pelajari mereka dan perlahan-lahan Anda akan bisa mengenali dan mencari tahu kapan harus menggunakannya. Mulailah dengan sesuatu yang sederhana seperti pola tunggal :)

jika Anda ingin membuat satu contoh objek dan hanya SATU. Anda menggunakan pola tunggal. Katakanlah Anda membuat program dengan objek opsi. Anda tidak ingin beberapa dari mereka, itu konyol. Singleton memastikan bahwa tidak akan ada lebih dari satu. Pola tunggal itu sederhana, banyak digunakan, dan sangat efektif.

Peter Rasmussen
sumber
17
Singleton tidak benar-benar untuk saat Anda hanya membutuhkan satu contoh. Singleton adalah untuk saat Anda perlu membatasi ke satu instance. Jika Anda hanya membutuhkan satu instance, Anda dapat mencoba membuat hanya satu instance dan menggunakannya.
R. Martinho Fernandes
Selain itu, meskipun singleton sangat berguna dan diperlukan di beberapa tempat, ini juga merupakan pola yang sangat mudah diterapkan jika tidak diperlukan. Seperti yang Anda tunjukkan di sini, dan seperti yang dikatakan Fernandes, Anda mungkin tidak membutuhkannya. Faktanya, penggunaan pola tunggal adalah pertanda baik dari kemungkinan (mungkin) bau kode. Menggunakannya untuk kelas layanan kemungkinan besar merupakan bau kode. Kedengarannya Anda membutuhkan DI, bukan tunggal. Beberapa orang memang menggunakannya seperti itu. Khususnya untuk kode kecil (tidak penting), atau POC. Tapi seperti yang saya katakan, ada beberapa kegunaan yang efektif. Jangan menemukan cara yang mudah untuk melakukan sesuatu dan lakukan saja.
Suamere
4

Saya sepenuhnya setuju dengan @Peter Rasmussen.

Pola desain memberikan solusi umum untuk masalah desain yang sering terjadi.

Saya ingin Anda mengikuti pendekatan di bawah ini.

  1. Pahami maksud dari setiap pola
  2. Pahami daftar periksa atau kasus penggunaan setiap pola
  3. Pikirkan solusi untuk masalah Anda dan periksa apakah solusi Anda termasuk dalam daftar periksa pola tertentu
  4. Jika tidak, abaikan saja pola desain dan tulis solusi Anda sendiri.

Link yang berguna:

pembuatan sumber : Menjelaskan maksud , struktur , dan daftar periksa dengan indah dalam berbagai bahasa termasuk C ++ dan Java

wikipedia : Menjelaskan struktur, diagram UML dan contoh kerja dalam berbagai bahasa termasuk C # dan Java.

Check list dan Rules of thumb di setiap pola desain pembuatan sumber menyediakan alram bell yang Anda cari.

Ravindra babu
sumber