Pertanyaan yang diberi tag «object-oriented-design»

Desain berorientasi objek adalah proses perencanaan sistem objek yang berinteraksi untuk tujuan memecahkan masalah perangkat lunak.

3
Bagaimana cara mengatasi ketergantungan sirkuler?
Saya memiliki tiga kelas yang saling bergantung satu sama lain: TestExecuter menjalankan permintaan dari TestScenario dan menyimpan file laporan menggunakan kelas ReportGenerator. Begitu: TestExecuter bergantung pada ReportGenerator untuk menghasilkan laporan ReportGenerator tergantung pada TestScenario dan pada parameter yang ditetapkan dari TestExecuter. TestScenario tergantung pada TestExecuter. Tidak dapat menemukan cara menghapus …

2
Bagaimana cara merancang sistem notifikasi yang dapat diskalakan? [Tutup]
Saya perlu menulis manajer sistem notifikasi. Inilah persyaratan saya: Saya harus dapat mengirim Pemberitahuan pada platform yang berbeda, yang mungkin sangat berbeda (misalnya, saya harus dapat mengirim SMS atau email). Kadang-kadang notifikasi mungkin sama untuk semua penerima untuk platform yang diberikan, tetapi kadang-kadang juga notifikasi untuk setiap penerima (atau beberapa) …

7
Apakah ini bau kode untuk mengatur bendera dalam satu lingkaran untuk menggunakannya nanti?
Saya memiliki sepotong kode di mana saya mengulangi peta sampai kondisi tertentu benar dan kemudian menggunakan kondisi itu untuk melakukan beberapa hal lagi. Contoh: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { limitFlag = true; …


10
Bagaimana para pendukung Pemrograman Fungsional menjawab pernyataan ini dalam Kode Lengkap?
Pada halaman 839 edisi kedua, Steve McConnell sedang mendiskusikan semua cara yang bisa dilakukan "programmer menaklukkan kompleksitas" dalam program besar. Kiatnya berujung pada pernyataan ini: "Pemrograman berorientasi objek menyediakan tingkat abstraksi yang berlaku untuk algoritma dan data pada saat yang sama , semacam abstraksi yang tidak disediakan oleh dekomposisi fungsional." …

17
Apa nilai menyembunyikan detail melalui abstraksi? Apakah tidak ada nilai dalam transparansi?
Latar Belakang Saya bukan penggemar berat abstraksi. Saya akan mengakui bahwa seseorang dapat mengambil manfaat dari kemampuan beradaptasi, portabilitas dan penggunaan kembali antarmuka dll. Ada manfaat nyata di sana, dan saya tidak ingin mempertanyakan itu, jadi mari kita abaikan saja. Ada "manfaat" abstraksi utama lainnya, yaitu menyembunyikan logika implementasi dan …

10
Antarmuka pada kelas abstrak
Rekan kerja saya dan saya memiliki pendapat berbeda tentang hubungan antara kelas dasar dan antarmuka. Saya berkeyakinan bahwa suatu kelas tidak boleh mengimplementasikan antarmuka kecuali kelas itu dapat digunakan ketika implementasi antarmuka diperlukan. Dengan kata lain, saya suka melihat kode seperti ini: interface IFooWorker { void Work(); } abstract class …

3
Apa yang terjadi dengan tes metode ketika metode itu menjadi pribadi setelah desain ulang di TDD?
Katakanlah saya mulai mengembangkan permainan peran dengan karakter yang menyerang karakter lain dan hal-hal semacam itu. Menerapkan TDD, saya membuat beberapa test case untuk menguji logika di dalam Character.receiveAttack(Int)metode. Sesuatu seperti ini: @Test fun healthIsReducedWhenCharacterIsAttacked() { val c = Character(100) //arg is the health c.receiveAttack(50) //arg is the suffered attack …


6
Bisakah Anda menerapkan pemrograman "berorientasi objek" tanpa kata kunci kelas?
Katakanlah kami ingin memberikan abstraksi "akun" di bank. Inilah satu pendekatan, menggunakan functionobjek dalam Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: return …

6
Apakah ada pola desain untuk menghilangkan kebutuhan untuk memeriksa bendera?
Saya akan menghemat beberapa payload string dalam database. Saya memiliki dua konfigurasi global: enkripsi kompresi Ini dapat diaktifkan atau dinonaktifkan menggunakan konfigurasi sedemikian rupa sehingga hanya salah satu dari mereka yang diaktifkan, keduanya diaktifkan atau keduanya dinonaktifkan. Implementasi saya saat ini adalah ini: if (encryptionEnable && !compressEnable) { encrypt(data); } …

7
Apakah pemrograman fungsional mengabaikan manfaat yang diperoleh dari "Pada Kriteria yang Akan Digunakan dalam Sistem Penguraian menjadi Modul" (menyembunyikan data)?
Ada sebuah artikel klasik bernama On the Criteria To Be Digunakan dalam Sistem Penguraian menjadi Modul yang baru saja saya baca untuk pertama kalinya. Masuk akal bagi saya, dan mungkin merupakan salah satu artikel yang menjadi dasar OOP. Kesimpulannya: Kami telah mencoba menunjukkan dengan contoh-contoh ini bahwa hampir selalu salah …




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.