Pertanyaan yang diberi tag «class-design»

Pedoman umum tentang cara merancang kelas dengan praktik industri yang paling dikenal.

16
Saat menggunakan Prinsip Tanggung Jawab Tunggal, apa yang merupakan "tanggung jawab?"
Tampaknya cukup jelas bahwa "Prinsip Tanggung Jawab Tunggal" tidak berarti "hanya melakukan satu hal." Itulah gunanya metode. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin mengatakan bahwa "kelas seharusnya hanya memiliki satu alasan untuk berubah." …

9
Apakah ada alasan "nyata" mengapa pewarisan berganda dibenci?
Saya selalu menyukai gagasan memiliki banyak warisan yang didukung dalam suatu bahasa. Paling sering meskipun itu sengaja dilupakan, dan seharusnya "penggantian" adalah antarmuka. Antarmuka tidak mencakup semua tanah yang sama dengan pewarisan berganda, dan pembatasan ini kadang-kadang dapat menyebabkan lebih banyak kode boilerplate. Satu-satunya alasan dasar yang pernah saya dengar …

13
Bagaimana memperingatkan programmer lain tentang implementasi kelas
Saya menulis kelas yang "harus digunakan dengan cara tertentu" (saya kira semua kelas harus ...). Misalnya, saya membuat fooManagerkelas, yang membutuhkan panggilan ke, katakanlah Initialize(string,string),. Dan, untuk mendorong contoh sedikit lebih jauh, kelas tidak akan berguna jika kita tidak mendengarkan ThisHappenedaksinya. Maksud saya adalah, kelas yang saya tulis membutuhkan pemanggilan …


6
Haruskah seorang pengambil rajutan pengecualian jika objeknya memiliki keadaan tidak valid?
Saya sering mengalami masalah ini, terutama di Jawa, bahkan jika saya pikir itu adalah masalah OOP umum. Yaitu: menaikkan pengecualian mengungkapkan masalah desain. Misalkan saya memiliki kelas yang memiliki String namebidang dan String surnamebidang. Kemudian ia menggunakan bidang-bidang itu untuk menulis nama lengkap seseorang untuk menampilkannya pada semacam dokumen, misalnya …




4
Mengapa memilih kelas batin non-statis daripada yang statis?
Pertanyaan ini adalah tentang apakah membuat kelas bersarang di Jawa menjadi kelas bersarang statis atau kelas bersarang dalam. Saya mencari di sekitar sini dan di Stack Overflow, tetapi tidak bisa menemukan pertanyaan mengenai implikasi desain dari keputusan ini. Pertanyaan yang saya temukan menanyakan tentang perbedaan antara kelas bersarang statis dan …



3
Parameter opsional atau konstruktor kelebihan beban
Saya menerapkan a DelegateCommand, dan ketika saya hendak mengimplementasikan konstruktor, saya menemukan dua pilihan desain berikut: 1: Memiliki banyak konstruktor yang kelebihan beban public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: Hanya memiliki satu konstruktor …

10
Bisakah kita hidup tanpa konstruktor?
Katakanlah dalam beberapa alasan semua objek dibuat dengan cara ini $ obj = CLASS :: getInstance (). Kemudian kami menyuntikkan dependensi menggunakan setter dan melakukan inisialisasi mulai menggunakan $ obj-> initInstance (); Apakah ada masalah atau situasi nyata, yang tidak dapat diselesaikan, jika kita tidak menggunakan konstruktor sama sekali? Ps …


2
Apakah ide yang baik untuk memberikan tanda tangan fungsi berbeda yang melakukan hal yang sama?
Berikut adalah kelas C ++ yang dibangun dengan tiga nilai. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Semua tipe parameter berbeda. Saya bisa membebani konstruktor sehingga pesanan tidak masalah. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, int, char); Foo(char, int, std::string); Foo(char, std::string, …

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.