Pola desain mana yang menurut Anda paling populer?
Pola desain mana yang menurut Anda paling populer?
Jawaban:
Saya cukup yakin yang paling umum adalah 'The Big Ball of Mud'. Sayangnya untuk kita semua.
http://en.wikipedia.org/wiki/Big_ball_of_mud
MVC dan variasinya jelas merupakan salah satu pola desain teratas.
Jika Anda berbicara tentang Gang-of-Four pola desain saya harus mengatakan Singleton . Ini adalah keadaan yang benar-benar menyedihkan - hampir seolah-olah programmer mendengar tentang keajaiban pola desain dan kemudian berhenti setelah yang pertama.
Jika Anda berbicara tentang pola gaya arsitektur (dengan kata lain, pola desain yang menjangkau beberapa kelas atau lapisan) saya harus mengatakan MVC . Beberapa yang populer lainnya adalah pola repositori dan service-locator .
Pengamat
Jika Anda pernah menggunakan suatu acara. Anda telah menggunakan Pengamat.
Penghias
Tambahkan fungsionalitas ke objek saat runtime melalui komposisi. Favorit pribadi saya.
Sunting: Juga Pabrik mungkin salah satu yang paling umum.
Fasad
Pikirkan antarmuka REST seperti Twitter atau API SO. Ini menyembunyikan banyak hal back end yang, setidaknya dalam kasus twitter, bisa sangat rumit.
Apakah saya peduli tweet db tables @ apklusk disimpan? Dan itu memiliki cache cepat? Dan bahwa @shemnon memiliki jumlah pembaca yang rendah, kicauan selalu di luar memori? Itulah keajaiban Fasad.
Pola Strategi
Jika Anda pernah menggunakan injeksi ketergantungan, Anda telah menggunakan pola strategi.
Saya terkejut tidak ada yang menyebutkan pola Pabrik, dalam pengalaman saya itu adalah salah satu pola yang paling banyak digunakan (dan juga paling banyak disalahgunakan) di luar sana. Jika tidak pertama, mungkin singleton harus menjadi yang pertama, saya akan berpikir ini akan menjadi yang kedua.
Bersamaan dengan jawaban saya sebelumnya, saya akan menambahkan yang baru saya bertemu hari ini dari binatang buas saya dari proyek yang diwarisi:
Salin / Tempel
Saat debugging saya menemukan sepotong kode yang memanggil 2 fungsi dengan nama yang sama:
if(x)
Func1
else
Func2
Func1 dan Func2 memiliki parameter yang sama. Saya menarik mereka keluar dan berbeda, dan mereka 100% sama kecuali untuk panggilan Func1 Func3 dan Func2 panggilan Func4. Saya mengeluarkannya dan membedakannya. 100% sama, kecuali untuk 1 baris. Jadi seorang programmer sebelumnya memutuskan untuk menyalin dan menempelkan dua fungsi bersarang 50-garis, alih-alih menambahkan parameter flag, ke 2 fungsi pribadi yang digunakan tepat di 1 tempat. Itu membuat saya ingin menangis.
Berbicara tentang pola desain Gang-of-Four, saya tidak bisa memikirkan program yang tidak menggunakan pola Observer. Juga, seperti yang disebutkan Jaco, Singleton juga sangat digunakan, sayangnya itu telah menjadi palu (setiap programmer menggunakannya bahkan jika itu tidak sepenuhnya diperlukan).
$_SESSIONvariabel PHP .
Penerjemah
Jarang diimplementasikan, sering digunakan. XPATH, XSLT, Regex, pemilih jQuery, dll.
Saya terkejut belum ada yang mengatakan "Builder". Atau "Adaptor". Mereka mungkin tidak eksotis seperti beberapa yang lain yang disebutkan, tetapi saya menggunakannya sepanjang waktu. Pabrik dan Pabrik Abstrak sangat umum juga (tetapi sudah diambil).
Saya tidak berpikir itu terdaftar di GoF, tetapi saya menggunakan variasi itu setiap saat.
Pada tingkat desain perangkat lunak, saya berpendapat bahwa Komposit, Strategi dan Templat (dan pada tingkat lebih rendah, Factory) adalah penggunaan yang paling luas. Selama sekitar sepuluh tahun terakhir, kami telah melihat preferensi untuk komposisi daripada warisan ketika membangun sistem kami menggunakan desain OO. Akibatnya, kombinasi pola yang baru saja disebutkan memainkan peran yang jauh lebih penting daripada semua IMO lainnya.
Secara arsitektur, saya berpendapat untuk MVC pada perusahaan, dan pola berdasarkan mesin negara pada sisi yang melekat hal.