Serial ini adalah menceritakan kembali secara gratis dan sangat singkat dari buku Robert Martin (Paman Bob) 2018, Clean Architecture. Bagian sebelumnya ada di sini .
Prinsip desain
Prinsip SOLID memberi tahu kita bagaimana kita dapat menggabungkan fungsi dan data kita ke dalam kelas, dan bagaimana kelas-kelas ini harus saling berhubungan. Artinya, prinsip-prinsip ini berada pada level menengah. Namun, mereka juga berlaku untuk level komponen (arsitektur level tinggi).
Prinsip SOLID dimulai pada akhir 1980-an dan distabilkan pada awal 2000-an.
SRP: Prinsip Tanggung Jawab Tunggal
Secara historis, prinsip ini telah dirumuskan sebagai berikut: modul harus memiliki satu dan hanya satu alasan untuk berubah.
Namun, Paman Bob menyarankan rumusan yang berbeda dan lebih tepat: modul harus bertanggung jawab atas satu dan hanya satu pelaku .
Modul adalah sekumpulan fungsi dan struktur data yang terkait.
Contoh dari pelanggaran prinsip: kelas Employee
dengan tiga metode calculatePay()
, reportHours()
, save()
. Ketiga metode ini berlaku untuk aktor yang berbeda. calculatePay()
- ini akuntansi, reportHours()
- ini adalah departemen personalia, save()
- ini adalah administrator database. Jika salah satu pelaku meminta untuk melakukan perubahan pada metode mereka, maka ini dapat mematahkan logika metode lain. Ini juga menyulitkan untuk menggabungkan perubahan dari aktor yang berbeda.
โ . , .
OCP: /
, .
: .
.
: -. - . OCP , , , . , , , . , .. .
, , .
OCP , .
LSP:
: S T, T S - .
, , .
LSP: /.
LSP: , REST- . . , , .
ISP:
, .
, , .
, . ISP , , , . , , . .
DIP:
, .
Java , .
, , , java.lang.String
. . , , . .
. , , .
.
, ? :
Di masa mendatang, kami akan lebih sering mengacu pada prinsip DIP daripada prinsip lainnya, karena prinsip tersebut menentukan kepada kami aturan paling penting untuk membangun arsitektur yang kompeten: Aturan Ketergantungan .
Bersambung...