Pertanyaan yang diberi tag «single-responsibility»

Prinsip Tanggung Jawab Tunggal menyatakan bahwa setiap modul dalam suatu sistem harus bertanggung jawab atas satu fitur atau fungsionalitas, atau agregasi fungsi kohesif. Cara umum lain untuk mengatakannya adalah dengan mengatakan bahwa setiap modul hanya memiliki satu alasan untuk berubah.

6
Apakah logging di sebelah implementasi merupakan pelanggaran SRP?
Ketika memikirkan pengembangan perangkat lunak yang gesit dan semua prinsip (SRP, OCP, ...) Saya bertanya pada diri sendiri bagaimana memperlakukan logging. Apakah logging di sebelah implementasi merupakan pelanggaran SRP? Saya akan mengatakan yeskarena implementasinya juga harus dapat berjalan tanpa logging. Jadi bagaimana saya bisa menerapkan logging dengan cara yang lebih …

6
Apakah pewarisan berganda melanggar Prinsip Tanggung Jawab Tunggal?
Jika Anda memiliki kelas yang mewarisi dari dua kelas yang berbeda, bukankah ini berarti bahwa subkelas Anda secara otomatis melakukan (setidaknya) 2 hal, satu dari setiap superclass? Saya percaya tidak ada perbedaan jika Anda memiliki beberapa antarmuka warisan. Sunting: Agar jelas, saya percaya bahwa jika subkelas banyak kelas melanggar SRP, …

4
Apakah Prinsip Tanggung Jawab Tunggal berlaku untuk fungsi?
Menurut Robert C. Martin, SRP menyatakan bahwa: Seharusnya tidak ada lebih dari satu alasan bagi kelas untuk berubah. Namun, dalam bukunya Clean Code , bab 3: Functions, ia menunjukkan blok kode berikut: public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); …


5
MVC: Apakah Pengendali melanggar Prinsip Tanggung Jawab Tunggal?
Prinsip Tanggung Jawab Tunggal menyatakan bahwa "kelas harus memiliki satu alasan perubahan". Dalam pola MVC, tugas Pengontrol adalah memediasi antara View dan Model. Ini menawarkan antarmuka untuk tampilan untuk melaporkan tindakan yang dibuat oleh pengguna pada GUI (misalnya memungkinkan tampilan untuk memanggil controller.specificButtonPressed()), dan dapat memanggil metode yang sesuai pada …

7
Haruskah saya memperbaiki fungsi besar yang sebagian besar terdiri dari satu regex? [Tutup]
Ditutup . Pertanyaan ini didasarkan pada pendapat . Saat ini tidak menerima jawaban. Ingin meningkatkan pertanyaan ini? Perbarui pertanyaan sehingga dapat dijawab dengan fakta dan kutipan dengan mengedit posting ini . Ditutup 5 tahun yang lalu . Saya baru saja menulis fungsi yang membentang sekitar 100 baris. Mendengar itu, Anda …

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 …

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



3
Bekerja melalui prinsip tanggung jawab tunggal (SRP) dengan Python saat panggilan mahal
Beberapa poin dasar: Panggilan metode Python "mahal" karena sifatnya yang ditafsirkan . Secara teori, jika kode Anda cukup sederhana, memecah kode Python memiliki dampak negatif selain keterbacaan dan penggunaan kembali ( yang merupakan keuntungan besar bagi pengembang, tidak terlalu banyak bagi pengguna ). Prinsip tanggung jawab tunggal (SRP) membuat kode …

5
Apakah berguna untuk kode mini-refactor dengan harapan meningkatkan kualitas, atau hanya "memindahkan kode" tanpa banyak manfaat?
Contoh Saya menemukan kode monolitik yang melakukan "segalanya" di satu tempat - memuat data dari basis data, menunjukkan markup HTML, bertindak sebagai router / controller / action. Saya mulai menerapkan kode database bergerak SRP ke file sendiri, memberikan penamaan yang lebih baik untuk hal-hal, dan semuanya terlihat bagus, tapi kemudian …


3
IValidatableObject vs Tanggung Jawab Tunggal
Saya suka titik ekstensi MVC, memungkinkan model tampilan untuk mengimplementasikan IValidatableObject, dan menambahkan validasi khusus. Saya mencoba membuat Controllers tetap ramping, memiliki kode ini menjadi satu-satunya logika validasi: if (!ModelState.IsValid) return View(loginViewModel); Misalnya model tampilan masuk mengimplementasikan IValidatableObject, mendapatkan objek ILoginValidator melalui injeksi konstruktor: public interface ILoginValidator { bool UserExists(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.