Pertanyaan yang diberi tag «class-design»

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

5
Bagaimana Anda dapat menguraikan konstruktor?
Katakanlah saya memiliki kelas Musuh, dan konstruktor akan terlihat seperti: public Enemy(String name, float width, float height, Vector2 position, float speed, int maxHp, int attackDamage, int defense... etc.){} Ini terlihat buruk karena konstruktor memiliki begitu banyak parameter, tetapi ketika saya membuat contoh Musuh saya perlu menentukan semua hal ini. Saya …

9
Kapan Anda harus menggunakan kelas pribadi / dalam?
Untuk memperjelas, yang saya tanyakan adalah public class A{ private/*or public*/ B b; } vs. public class A{ private/*or public*/ class B{ .... } } Saya pasti dapat memikirkan beberapa alasan untuk menggunakan satu atau yang lain, tetapi apa yang saya benar-benar ingin lihat adalah contoh meyakinkan yang menunjukkan bahwa …

7
Apa ide di balik kelas penamaan dengan akhiran "Info", misalnya: "SomeClass" dan "SomeClassInfo"?
Saya bekerja di sebuah proyek yang berhubungan dengan perangkat fisik, dan saya bingung bagaimana cara menyebutkan beberapa kelas dengan benar dalam proyek ini. Mengingat perangkat yang sebenarnya (sensor dan penerima) adalah satu hal, dan representasi mereka dalam perangkat lunak adalah hal lain, saya berpikir tentang penamaan beberapa kelas dengan pola …

4
Mengapa mendefinisikan objek Java menggunakan antarmuka (misalnya Peta) daripada implementasi (HashMap)
Di sebagian besar kode Java, saya melihat orang mendeklarasikan objek Java seperti ini: Map<String, String> hashMap = new HashMap<>(); List<String> list = new ArrayList<>(); dari pada: HashMap<String, String> hashMap = new HashMap<>(); ArrayList<String> list = new ArrayList<>(); Mengapa ada preferensi untuk mendefinisikan objek Java menggunakan antarmuka daripada implementasi yang sebenarnya …

7
Pada titik apakah kelas yang tidak dapat berubah menjadi beban?
Ketika merancang kelas untuk menampung model data Anda, saya sudah membacanya dapat berguna untuk membuat objek yang tidak dapat diubah tetapi pada titik apa beban daftar parameter konstruktor dan salinan yang dalam menjadi terlalu banyak dan Anda harus meninggalkan batasan yang tidak dapat diubah? Sebagai contoh, ini adalah kelas yang …

2
Menjinakkan kelas 'fungsi utilitas'
Dalam basis kode Java kami, saya terus melihat pola berikut: /** This is a stateless utility class that groups useful foo-related operations, often with side effects. */ public class FooUtil { public int foo(...) {...} public void bar(...) {...} } /** This class does applied foo-related things. */ class FooSomething …




4
Seberapa spesifik seharusnya pola Tanggung Jawab Tunggal untuk kelas?
Sebagai contoh, misalkan Anda memiliki program permainan konsol, yang memiliki semua jenis metode input / output ke dan dari konsol. Apakah akan pintar untuk menjaga mereka semua dalam satu inputOutputkelas atau istirahat mereka turun ke kelas khusus lebih seperti startMenuIO, inGameIO, playerIO, gameBoardIO, dll sehingga setiap kelas memiliki sekitar 1-5 …

5
Kelas dasar sebagai pabrik?
Saya sedang menulis beberapa kode selama akhir pekan dan saya mendapati diri saya ingin menulis sebuah pabrik sebagai metode statis di kelas dasar. Pertanyaan saya hanya untuk mengetahui apakah ini merupakan pendekatan otomatis? Perasaan saya bahwa itu mungkin tidak berasal dari fakta bahwa kelas dasar memiliki pengetahuan tentang kelas turunan. …
14 c#  class-design 


2
Desain: Metode objek vs metode kelas terpisah yang mengambil Objek sebagai parameter?
Misalnya, apakah lebih baik melakukan: Pdf pdf = new Pdf(); pdf.Print(); atau: Pdf pdf = new Pdf(); PdfPrinter printer = new PdfPrinter(); printer.Print(pdf); Contoh lain: Country m = new Country("Mexico"); double ratio = m.GetDebtToGDPRatio(); atau: Country m = new Country("Mexico"); Country us = new Country("US"); DebtStatistics ds = new DebtStatistics(); …

4
Kelas besar dengan tanggung jawab tunggal
Saya memiliki Characterkelas 2500 baris yang: Melacak status internal karakter dalam game. Banyak dan teruskan kondisi itu. Menangani ~ 30 perintah masuk (biasanya = meneruskannya ke Game, tetapi beberapa perintah read-only direspon dengan segera). Menerima ~ 80 panggilan dari Gamemengenai tindakan yang diambil dan tindakan yang relevan dari orang lain. …

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, …

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.