Pertanyaan yang diberi tag «object-oriented-design»

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

4
Menggunakan final publik daripada getter pribadi
Saya melihat POJO paling abadi ditulis seperti ini: public class MyObject { private final String foo; private final int bar; public MyObject(String foo, int bar) { this.foo = foo; this.bar = bar; } public String getFoo() { return foo; } public int getBar() { return bar; } } Namun saya …

7
Mengapa chaining setters tidak konvensional?
Memiliki rantai yang diimplementasikan pada kacang sangat berguna: tidak perlu untuk membebani konstruktor, konstruktor besar, pabrik, dan memberi Anda peningkatan keterbacaan. Saya tidak bisa memikirkan kelemahan, kecuali jika Anda ingin objek Anda tidak berubah , dalam hal ini tidak akan memiliki setter. Jadi adakah alasan mengapa ini bukan konvensi OOP? …

4
Penyebaran pengecualian: Kapan saya harus menangkap pengecualian?
MethodA memanggil MethodB yang pada gilirannya memanggil MethodC. Tidak ada penanganan eksepsi di MethodB atau MethodC. Tetapi ada penanganan pengecualian di MethodA. Dalam MethodC terjadi pengecualian. Sekarang, pengecualian itu menggelembung ke MethodA, yang menanganinya dengan tepat. apa yang salah dengan ini? Dalam pikiran saya, pada titik tertentu penelepon akan mengeksekusi …


10
Bagaimana tes unit memfasilitasi desain?
Rekan kami mempromosikan tes unit penulisan sebagai benar-benar membantu kami untuk memperbaiki hal-hal desain dan refactor kami, tetapi saya tidak mengerti caranya. Jika saya memuat file CSV dan menguraikannya, bagaimana uji unit (memvalidasi nilai di bidang) akan membantu saya memverifikasi desain saya? Dia menyebutkan coupling dan modularitas dll. Tetapi bagi …


9
Pemrograman untuk penggunaan antarmuka di masa depan
Saya memiliki seorang kolega yang duduk di sebelah saya yang mendesain antarmuka seperti ini: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Masalahnya adalah, saat ini, kita tidak menggunakan parameter "end" ini di mana pun dalam kode kita, itu hanya ada karena …



6
Mengapa menghindari Warisan Java “Perluas”
Kata Jame Gosling "Anda harus menghindari warisan implementasi sedapat mungkin." dan sebagai gantinya, gunakan pewarisan antarmuka. Tapi kenapa? Bagaimana kita dapat menghindari mewarisi struktur suatu objek menggunakan kata kunci "extends", dan pada saat yang sama membuat kode kita Berorientasi Objek? Bisakah seseorang tolong berikan contoh Berorientasi Objek yang menggambarkan konsep …


13
Apakah salah menggunakan parameter boolean untuk menentukan nilai?
Menurut Apakah salah menggunakan parameter boolean untuk menentukan perilaku? , Saya tahu pentingnya menghindari menggunakan parameter boolean untuk menentukan perilaku, misalnya: versi asli public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } versi baru: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } Tetapi bagaimana …


8
Apakah OOP menjadi lebih mudah atau lebih sulit? [Tutup]
Ketika konsep Pemrograman Berorientasi Objek diperkenalkan kepada pemrogram tahun yang lalu itu terlihat menarik dan pemrograman lebih bersih. OOP seperti ini Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); Itu lebih mudah dipahami dengan nama deskriptif diri. Tapi sekarang OOP, dengan pola seperti Objek Transfer Data, Nilai Objek, Repositori, Ketergantungan Injeksi …

6
Bagaimana saya menguji sistem di mana benda-benda sulit untuk diejek?
Saya bekerja dengan sistem berikut: Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern Kami baru-baru ini memiliki masalah di mana saya memperbarui versi perpustakaan yang saya gunakan, yang, antara lain, menyebabkan cap waktu (yang dikembalikan oleh perpustakaan pihak ketiga long), diubah dari milidetik setelah …

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.