Pertanyaan yang diberi tag «design-patterns»

Pola desain adalah solusi umum yang dapat digunakan kembali untuk masalah yang biasa terjadi dalam desain perangkat lunak.

5
Bisakah kita sepenuhnya mengganti warisan menggunakan pola strategi dan injeksi ketergantungan?
Sebagai contoh: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Karena kelas Bebek berisi semua perilaku (abstrak), membuat kelas baru MallardDuck(yang meluas Duck) tampaknya tidak diperlukan. Referensi: Pola Desain Kepala Pertama, Bab 1.

6
Apa definisi terbaik untuk Injeksi Ketergantungan?
Setiap kali seseorang menghubungi saya dan meminta saya untuk mendefinisikan Injeksi Ketergantungan dalam cara konseptual dan menjelaskan pro dan kontra yang sebenarnya dalam menggunakan DI dalam desain perangkat lunak. Saya mengakui bahwa saya memiliki beberapa kesulitan untuk menjelaskan konsep-konsep DI. Setiap kali saya perlu memberi tahu mereka sejarah tentang prinsip …


2
Peringatkan Arsitektur Sistem
Saya ingin membuat sistem yang menangani pesan-pesan peringatan dari berbagai program dan dapat memproses peringatan itu untuk konsumen yang tidak bersemangat melalui email. Ini semua akan terkandung dalam satu jaringan internal. Saya rasa saya ingin arsitektur dasar terlihat seperti ini: Perhatian utama yang saya miliki saat ini adalah bit "Message …


6
Bagaimana Anda menghindari iterasi tanpa henti melalui desain yang kurang optimal?
Jadi mungkin seperti banyak, saya sering menemukan diri saya mengalami sakit kepala dengan masalah desain di mana, misalnya, ada beberapa pola desain / pendekatan yang tampaknya sesuai dengan masalah dan memiliki manfaat yang diinginkan. Sangat sering ada beberapa peringatan yang membuatnya sulit untuk menerapkan pola / pendekatan tanpa semacam pekerjaan …

5
Apakah saya tetap bisa melanggar LSP?
Saya menindaklanjuti pertanyaan ini , tetapi saya mengalihkan fokus saya dari kode ke prinsip. Dari pemahaman saya tentang prinsip substitusi Liskov (LSP), metode apa pun yang ada di kelas dasar saya, mereka harus diimplementasikan dalam subkelas saya, dan menurut halaman ini , jika Anda mengganti metode di kelas dasar dan …

5
Menggunakan pola berbeda untuk fitur serupa
Saya adalah satu-satunya pengembang di proyek yang, seperti proyek perangkat lunak apa pun, dapat diambil oleh orang lain di masa mendatang. Katakanlah saya menggunakan pola X untuk mengimplementasikan fitur A. Setelah mengembangkan dan menyelesaikan fitur, saya menyadari bahwa saya dapat mengimplementasikan fitur yang sama menggunakan pola Y, yang baru saja …

4
Java: Bagaimana menerapkan pembangun langkah yang tidak memedulikan urutan setter?
Sunting: Saya ingin menunjukkan bahwa pertanyaan ini menjelaskan masalah teoritis, dan saya sadar bahwa saya dapat menggunakan argumen konstruktor untuk parameter wajib, atau melempar pengecualian runtime jika API digunakan secara tidak benar. Namun, saya mencari solusi yang tidak memerlukan argumen konstruktor atau pengecekan runtime. Bayangkan Anda memiliki Carantarmuka seperti ini: …

3
Menggunakan Antarmuka untuk Kode yang Digabungkan Secara Bebas
Latar Belakang Saya memiliki proyek yang tergantung pada penggunaan jenis perangkat perangkat keras tertentu, sementara itu tidak terlalu penting siapa yang membuat perangkat perangkat keras selama itu melakukan apa yang saya butuhkan. Dengan itu dikatakan, bahkan dua perangkat yang seharusnya melakukan hal yang sama akan memiliki perbedaan ketika mereka tidak …




4
Mengurangi kompleksitas kelas
Saya telah melihat beberapa jawaban dan mencari di Google, tetapi saya tidak dapat menemukan sesuatu yang membantu (yaitu, itu tidak akan memiliki efek samping yang canggung). Masalah saya, secara abstrak, adalah bahwa saya memiliki objek dan perlu melakukan urutan operasi yang panjang di atasnya; Saya menganggapnya sebagai semacam jalur perakitan, …

4
Mengurangi boilerplate di kelas yang mengimplementasikan antarmuka melalui komposisi
Saya punya kelas: Aitu adalah gabungan dari sejumlah kelas yang lebih kecil B,, Cdan D. B, C, Dan Dmengimplementasikan interface IB, ICdan IDmasing-masing. Karena Amendukung semua fungsionalitas B, Cdan D, Aimplementasi IB, ICdan IDjuga, tetapi sayangnya hal ini menyebabkan banyak perutean ulang dalam implementasiA Seperti itu: interface IB { int …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.