S = Prinsip Tanggung Jawab Tunggal
Jadi saya berharap melihat struktur folder / file yang terorganisir dengan baik & Object Hierarchy. Setiap kelas / bagian dari fungsionalitas harus dinamai bahwa fungsinya sangat jelas, dan seharusnya hanya berisi logika untuk melakukan tugas itu.
Jika Anda melihat kelas manajer besar dengan ribuan baris kode, itu akan menjadi pertanda bahwa tanggung jawab tunggal tidak diikuti.
O = Prinsip Terbuka / tertutup
Ini pada dasarnya adalah gagasan bahwa fungsionalitas baru harus ditambahkan melalui kelas-kelas baru yang memiliki dampak minimal pada / memerlukan modifikasi fungsionalitas yang ada.
Saya berharap dapat melihat banyak penggunaan objek warisan, sub-mengetik, antarmuka dan kelas abstrak untuk memisahkan desain sepotong fungsi dari implementasi aktual, memungkinkan orang lain untuk datang dan mengimplementasikan versi lain di samping tanpa mempengaruhi asli.
L = Prinsip substitusi Liskov
Ini berkaitan dengan kemampuan untuk memperlakukan sub-tipe sebagai tipe induknya. Ini keluar dari kotak di C # jika Anda menerapkan hierarki objek yang diwariskan yang tepat.
Saya berharap melihat kode memperlakukan objek umum sebagai tipe dasar dan metode panggilan pada kelas dasar / abstrak daripada membuat instance dan bekerja pada sub-tipe itu sendiri.
I = Prinsip Segregasi Antarmuka
Ini mirip dengan SRP. Pada dasarnya, Anda mendefinisikan himpunan bagian kecil dari fungsi sebagai antarmuka dan bekerja dengan mereka untuk menjaga sistem Anda dipisahkan (misalnya FileManager
mungkin memiliki tanggung jawab tunggal berurusan dengan File I / O, tetapi yang dapat mengimplementasikan IFileReader
dan IFileWriter
yang berisi definisi metode khusus untuk membaca) dan penulisan file).
D = Prinsip Pembalikan Ketergantungan.
Sekali lagi ini berkaitan dengan menjaga sistem dipisahkan. Mungkin Anda akan mencari penggunaan perpustakaan .NET Dependency Injection, yang digunakan dalam solusi seperti Unity
atau Ninject
atau sistem ServiceLocator seperti AutoFacServiceLocator
.