Pertanyaan yang diberi tag «solid»

Mnemonik untuk serangkaian prinsip desain: Tanggung jawab tunggal, Terbuka-tertutup, penggantian Liskov, Pemisahan antarmuka, Pembalikan ketergantungan

6
Bisakah masalah lingkaran-elips diselesaikan dengan membalikkan hubungan?
Setelah CirclememperpanjangEllipse istirahat Prinsip Substisi Liskov , karena memodifikasi postkondisi: yaitu, Anda dapat mengatur X dan Y secara independen untuk menggambar elips, tetapi X harus selalu sama dengan Y untuk lingkaran. Tapi bukankah masalah di sini disebabkan oleh memiliki Circle menjadi subtipe dari Ellipse? Tidak bisakah kita membalikkan hubungan? Jadi, …

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 …


5
Apakah kelebihan contoh prinsip Terbuka / tertutup?
Wikipedia mengatakan "entitas perangkat lunak (kelas, modul, fungsi, dll.) harus terbuka untuk ekstensi, tetapi ditutup untuk modifikasi" Kata fungsi menarik perhatian saya, dan sekarang saya bertanya-tanya apakah kita dapat berasumsi bahwa menciptakan kelebihan untuk suatu metode dapat dianggap sebagai contoh prinsip Terbuka / tertutup atau tidak? Izinkan saya menjelaskan sebuah …

4
Bagaimana cara menentukan prasyarat (LSP) di antarmuka dalam C #?
Katakanlah kita memiliki antarmuka berikut - interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } Prasyaratnya adalah ConnectionString harus diatur / diinternisasi sebelum salah satu metode dapat dijalankan. Prasyarat ini dapat agak dicapai dengan melewatkan koneksiString melalui konstruktor …

9
SOLID vs metode statis
Inilah masalah yang sering saya temui: Biarkan ada proyek toko web yang memiliki kelas Produk. Saya ingin menambahkan fitur yang memungkinkan pengguna untuk mengirim ulasan ke suatu produk. Jadi saya memiliki kelas Ulasan yang mereferensikan suatu produk. Sekarang saya membutuhkan metode yang mencantumkan semua ulasan untuk suatu produk. Ada dua …

4
Bagaimana cara berpikir tentang pola desain dan praktik OOP berubah dalam bahasa yang dinamis dan diketik dengan lemah?
Sudah ada pertanyaan yang cukup membantu di sepanjang garis ini (" Pola Desain Non-OOP? "), Tetapi saya lebih ingin tahu tentang sudut pandang transisi untuk seseorang yang baru memulai dengan bahasa yang dinamis dan diketik dengan lemah. Yaitu: katakanlah saya telah memprogram dalam C ++, C #, atau Java selama …

3
Apakah prinsip pemisahan antarmuka berlaku untuk metode konkret?
Seperti prinsip pemisahan antarmuka menyarankan tidak ada klien harus dipaksa untuk bergantung pada metode yang tidak digunakan, sehingga klien tidak boleh menerapkan metode kosong untuk metode antarmuka, jika tidak metode antarmuka ini harus dimasukkan ke antarmuka lain. Tetapi bagaimana dengan metode konkret? Haruskah saya memisahkan metode yang tidak akan digunakan …

3
Apakah mudah ditemukannya pengembang saat menggunakan prinsip SOLID?
Saya mengerjakan berbagai aplikasi bisnis di mana semua pengembang lain terbiasa melakukan aplikasi CRUD dasar atau hanya berfokus pada membuat antarmuka yang cantik / fungsional dan saya mendapatkan banyak hal sebagai berikut. "Dengan cara yang kita gunakan untuk melakukannya, Karyawan akan memiliki semua hal yang dapat Anda lakukan dengan seorang …
10 solid  crud 

2
Saat mengikuti SRP, bagaimana saya harus berurusan dengan memvalidasi dan menyimpan entitas?
Saya telah membaca Kode Bersih dan berbagai artikel online tentang SOLID belakangan ini, dan semakin saya membaca tentangnya, semakin saya merasa tidak tahu apa-apa. Katakanlah saya sedang membangun sebuah aplikasi web menggunakan katakanlah ASP.NET MVC 3. Mari saya memiliki UsersControllerdengan Createtindakan seperti ini: public class UsersController : Controller { public …

5
Apakah ini merupakan pelanggaran terhadap Prinsip Terbuka-Tertutup untuk memperbarui konstanta yang mewakili nilai dunia nyata?
Saya memiliki kelas yang menghitung pendapatan tahunan bersih pekerja. Ini memiliki konstanta yang mewakili persentase pajak. Tetapi suatu hari tarif pajak telah berubah, jadi saya perlu memperbaiki kodenya. Apakah tindakan memperbaiki konstanta ini menunjukkan pelanggaran terhadap Prinsip Terbuka-Tertutup , karena mendalilkan bahwa suatu kelas harus ditutup untuk modifikasi?


2
Prinsip Segregasi Antarmuka: Apa yang harus dilakukan jika antarmuka memiliki tumpang tindih yang signifikan?
Dari Pengembangan Perangkat Lunak, Prinsip, Pola, dan Praktek Agile: Pearson New International Edition : Terkadang, metode yang digunakan oleh berbagai kelompok klien akan tumpang tindih. Jika tumpang tindih kecil, maka antarmuka untuk grup harus tetap terpisah. Fungsi umum harus dideklarasikan di semua antarmuka yang tumpang tindih. Kelas server akan mewarisi …

2
Apakah ada prinsip antarmuka "minta hanya apa yang Anda butuhkan"?
Saya telah tumbuh menggunakan prinsip untuk mendesain dan mengonsumsi antarmuka yang pada dasarnya mengatakan, "minta hanya apa yang Anda butuhkan." Misalnya, jika saya memiliki banyak jenis yang dapat dihapus, saya akan membuat Deletableantarmuka: interface Deletable { void delete(); } Maka saya bisa menulis kelas generik: class Deleter<T extends Deletable> { …


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.