Pertanyaan yang diberi tag «design-patterns»

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

6
Apa cara yang lebih baik untuk melarikan diri dari terlalu banyak if / else-if dari snipet kode berikut?
Saya mencoba untuk menulis servlet yang melakukan tugas berdasarkan nilai "action" yang diteruskan sebagai input. Berikut adalah contohnya public class SampleClass extends HttpServlet { public static void action1() throws Exception{ //Do some actions } public static void action2() throws Exception{ //Do some actions } //And goes on till action9 public …


2
Bagaimana cara menguji kode yang tidak dapat disuntikkan?
Jadi saya memiliki kode berikut yang digunakan di seluruh sistem saya. Kami sedang menulis tes unit secara retrospektif (lebih baik terlambat daripada tidak pernah argumen saya), tapi saya tidak melihat bagaimana ini akan diuji? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter = new SearchEntityToQueryAdapter($queryBuilder, …

1
Bisakah model domain dalam database menjadi solusi berkelanjutan?
Saya baru saja memulai pekerjaan baru sebagai pengembang basis data untuk perusahaan menengah-kecil yang berbasis pada teknologi Microsoft. Saya perhatikan sejak awal seberapa banyak praktik yang menyimpang dari apa yang telah saya pelajari di sekolah mengenai praktik terbaik, pola desain, pengujian, dan manajemen proyek. Yang paling menggangguku adalah bagaimana pengembang …



6
Mempertanyakan salah satu argumen untuk kerangka kerja injeksi ketergantungan: Mengapa membuat grafik objek sulit?
Kerangka kerja injeksi ketergantungan seperti Google Guice memberikan motivasi berikut untuk penggunaannya ( sumber ): Untuk membangun objek, pertama-tama Anda membangun dependensinya. Tetapi untuk membangun setiap ketergantungan, Anda membutuhkan dependensinya, dan sebagainya. Jadi ketika Anda membangun objek, Anda benar-benar perlu membuat grafik objek. Membuat grafik objek dengan tangan membutuhkan banyak …

2
Haruskah saya mengekspos nilai "dihitung" sebagai properti atau metode?
Saya memiliki kelas C # yang mewakili jenis konten dalam sistem manajemen konten web. Kami memiliki bidang yang memungkinkan editor konten web untuk memasukkan template HTML untuk bagaimana objek ditampilkan. Ini pada dasarnya menggunakan sintaks setang untuk menggantikan nilai properti objek ke dalam string HTML: <h1>{{Title}}</h1><p>{{Message}}</p> Dari perspektif desain kelas, …

2
Mengapa pisahkan class CommandHandler dengan Handle () alih-alih metode penanganan di Command itu sendiri
Saya memiliki bagian dari pola CQRS yang diimplementasikan menggunakan Arsitektur S # arp seperti ini: public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } …

4
Rails: Law of Demeter Confusion
Saya membaca buku berjudul Rails AntiPatterns dan mereka berbicara tentang menggunakan delegasi untuk menghindari melanggar Hukum Demeter. Inilah contoh utama mereka: Mereka percaya bahwa memanggil sesuatu seperti ini di controller itu buruk (dan saya setuju) @street = @invoice.customer.address.street Solusi yang mereka usulkan adalah melakukan yang berikut: class Customer has_one :address …

3
Prinsip Ketergantungan Inversi: Bagaimana mendefinisikan "kebijakan tingkat tinggi" dan "detail tingkat rendah" untuk orang lain?
Saya mencoba menjelaskan prinsip inversi ketergantungan kepada kolega saya (kebanyakan junior). Bagaimana kita dapat mendefinisikan mana yang merupakan "kebijakan tingkat tinggi" dan mana yang merupakan "detail tingkat rendah" dalam suatu perangkat lunak? Misalnya, jika perangkat lunak kami mengotomatiskan alur kerja beberapa aplikasi bisnis, mengapa kami mengatakan bahwa otomatisasi alur kerja …

3
Apakah menggunakan unit test untuk menceritakan sebuah cerita adalah ide yang bagus?
Jadi, saya punya modul otentikasi yang saya tulis beberapa waktu lalu. Sekarang saya melihat kesalahan cara saya dan menulis tes unit untuk itu. Saat menulis unit test, saya kesulitan menemukan nama baik dan area bagus untuk diuji. Misalnya, saya punya hal-hal seperti MembutuhkanLogin_should_redirect_when_not_logged_in MembutuhkanLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials Secara pribadi, saya pikir itu …

2
Apakah ada alur kerja tertentu atau pola desain yang umum digunakan untuk membuat aplikasi pemrograman fungsional yang besar? [Tutup]
Ditutup . Pertanyaan ini perlu lebih fokus . Saat ini tidak menerima jawaban. Ingin meningkatkan pertanyaan ini? Perbarui pertanyaan sehingga berfokus pada satu masalah hanya dengan mengedit posting ini . Ditutup 4 tahun yang lalu . Saya telah menjelajahi Clojure untuk sementara waktu sekarang, meskipun saya belum menggunakannya pada proyek …

4
Bagaimana menentukan apakah Pola Desain diterapkan dengan benar?
Saya berhasil mengatur semua aplikasi lama saya yang tidak menggunakan Pola Desain yang terdokumentasi. Pola apa pun itu, aku tidak tahu. Untuk sebagian besar, saya hanya merasa perlu menggunakan konsep OOP sederhana. Konsep Pola Desain rumit dan sulit dipahami. Ketika diimplementasikan, bagaimana menentukan apakah implementasinya benar dan aplikasi memiliki kopling …

3
Merekomendasikan pola desain / pendekatan untuk mengekspos / mentolerir / memulihkan dari kesalahan sistem, Penanganan pengecualian (mis. Di Jawa, C ++, Perl, PHP)
Bisakah Anda merekomendasikan pola desain / pendekatan untuk mengekspos / mentolerir / memulihkan dari kesalahan sistem, penanganan Exception (Java, C ++, Perl, PHP)? Beberapa kesalahan perlu dilaporkan. Beberapa kesalahan dapat ditangani secara internal (dengan coba lagi atau tidak penting (dapat diabaikan). Bagaimana Anda menyusun kode untuk menangkapnya? Tetapi semua kesalahan …

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.