Pertanyaan yang diberi tag «design-patterns»

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

3
React Native - Apakah menggunakan singleton alternatif terbaik untuk DI?
Saya sudah banyak membaca tentang pola tunggal dan bagaimana itu "buruk" karena membuat kelas-kelas menggunakannya sulit untuk diuji sehingga harus dihindari. Saya telah membaca beberapa artikel yang menjelaskan bagaimana singleton dapat diganti dengan suntikan ketergantungan, tetapi tampaknya tidak perlu bagi saya. Inilah masalah saya sedikit lebih detail. Saya sedang membangun …

9
Pola desain untuk nilai-nilai yang saling bergantung
Ringkasan: Apakah ada pola desain yang baik untuk mengurangi duplikasi informasi di antara nilai-nilai yang saling bergantung erat? Dalam pekerjaan saya, cukup umum untuk memiliki hubungan antara jumlah sehingga Anda dapat memperoleh salah satu dari jumlah tersebut jika Anda tahu yang lain. Contohnya adalah hukum gas Ideal : Pv = …

8
Pelanggaran Prinsip Tanggung Jawab Tunggal?
Saya baru-baru ini berdebat dengan pengembang lain mengenai kelas di bawah ini: public class GroupBillingPayment { public void Save(IGroupBillingPayment model) { if (model == null || UserInfo.UserID == 0) { throw new Exception("GroupBillingPayment object or Current User Id is NULL , Please Contact Administrator."); } Data.GroupBillingPayment groupBillingPayment = RepositoryManager.GroupBillingPaymentRepository.GetById(model.GroupBillingPaymentID); Mapper.Map(model, …

4
Struktur kode untuk menangani banyak pasar? (aturan bisnis yang berbeda untuk setiap negara bagian di AS)
Kami sedang mengembangkan aplikasi yang memiliki persyaratan yang sedikit berbeda untuk setiap pasar bisnis (negara dan negara bagian) tempat aplikasi itu tersedia. Sepertinya ini adalah situasi yang umum tetapi saya tidak dapat menemukan artikel yang bagus tentang penataan kode / modul untuk skenario ini. Ini adalah aplikasi C # dan …


5
Prinsip Terbuka Tertutup dalam pola desain
Saya agak bingung tentang bagaimana prinsip Open Closed dapat diterapkan dalam kehidupan nyata. Persyaratan dalam setiap bisnis berubah dari waktu ke waktu. Menurut prinsip Open-Closed Anda harus memperluas kelas alih-alih memodifikasi kelas yang ada. Bagi saya setiap kali memperpanjang kelas sepertinya tidak praktis untuk memenuhi persyaratan. Biarkan saya memberi contoh …

2
DDD: Membuat modul yang dapat digunakan kembali dan perbedaan jenis layanan (Domain, Infrastruktur, Aplikasi)
Jadi setelah membaca "Menerapkan Desain Berbasis Domain oleh Vaughn Vernon" Saya telah memutuskan untuk memperbaiki kode saya untuk kegunaan yang lebih baik dengan mengisolasi apa yang saya yakini sebagai konsep domain inti ke dalam modul terpisah. Setiap modul berisi set sendiri lapisan arsitektur yang berbeda yang mencakup Domain, Infrastruktur, dan …

7
Properti yang dapat mewakili tanggal tunggal dan rentang tanggal: Bagaimana memodelkannya dengan benar?
Saya bekerja dalam sistem yang dapat mewakili "perkiraan pengiriman" dalam dua cara: Tanggal tertentu: Barang dijamin dikirim pada tanggal itu Interval hari: Item akan dikirim hari "X ke Y" mulai hari ini Informasi pada model secara semantik sama, itu adalah "perkiraan pengiriman". Ketika saya mendapatkan informasi tentang perkiraan pengiriman dari …

3
Refactoring API klien untuk menghindari duplikasi kode dan bagian parameter yang tidak jelas
Saya perlu mengembangkan API, fungsi API adalah permintaan yang memanggil layanan yang diekspos oleh server. Awalnya API bekerja seperti ini: class Server: def firstRequest(self, arg1, arg2): # block of code A async = Async() async.callFirstRequest(arg1, arg2) # block of code B def secondRequest(self, argA, argB, argC): # block of code …

7
Pola desain untuk "operasi pada objek diizinkan, hanya jika objek dalam keadaan tertentu"
Sebagai contoh: Hanya lamaran pekerjaan yang belum ditinjau atau disetujui, yang dapat diperbarui. Dengan kata lain, seseorang dapat memperbarui formulir alat kerjanya sampai HR mulai memeriksanya, atau sudah diterima. Jadi lamaran kerja bisa di 4 negara: DITERAPKAN (kondisi awal), IN_REVIEW, DISETUJUI, DITERBITKAN Bagaimana saya mencapai perilaku seperti itu? Tentunya saya …

1
Pendekatan apa dalam Pola DataMapper yang lebih baik untuk beberapa tabel atau bergabung?
Biasanya, Data Mapper memetakan data dari satu tabel tertentu. (Secara teoritis seharusnya berkomunikasi antara Storage dan Objek Domain, tetapi tidak mungkin dalam kasus saya, jadi saya langsung berkomunikasi dengan tabel.) Table1Mappper> Table1 Tetapi jika tabel itu membutuhkan data untuk bergabung dari tabel lain, maka Anda memperluas ruang lingkup Pemeta Data …


2
Fitur opsional: metode default atau antarmuka terpisah
Antarmuka khusus tampaknya menjadi cara yang baik untuk mengekspos fitur opsional dalam hierarki jenis khusus domain. Namun, mereka menghambat penggunaan dekorator dan pola komposit, yang juga umum dalam hierarki semacam ini. Terutama, mungkin tidak ada yang ingin mengimplementasikan dekorator / komposit untuk setiap kemungkinan kombinasi antarmuka ini, jadi lebih sering …

3
Pola Desain - DLL per Strategi
Saya biasanya mendapati diri saya merancang aplikasi saya dengan cara berikut: Satu DLL yang berisi antarmuka untuk subsistem yang diinginkan. Sebagai contoh Company.Framework.Persistence.dll,. Satu DLL baru per setiap strategi (atau implementasi ) dari subsistem tersebut. Sebagai contoh: Company.Framework.Persistence.MSSQL.dll Company.Framework.Persistence.MySQL.dll Company.Framework.Persistence.FileSystem.dll Ini akan menghasilkan solusi yang sangat besar dengan banyak proyek, …

3
Pola desain apa yang paling sesuai menangani pegangan untuk objek, tanpa melewati pegangan atau Manajer di sekitar?
Saya sedang menulis game di C ++ menggunakan OpenGL. Bagi mereka yang tidak tahu, dengan OpenGL API Anda melakukan banyak panggilan ke hal-hal seperti glGenBuffersdan glCreateShaderlain-lain. Jenis pengembalian ini GLuintadalah pengidentifikasi unik untuk apa yang baru saja Anda buat. Benda yang diciptakan hidup dengan memori GPU. Mengingat Memori GPU terkadang …
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.