SOLID Principles Demystified — (S)

Apr 17 2023
Prinsip Tanggung Jawab Tunggal
Kelas hanya bertanggung jawab untuk satu tujuan, artinya kelas hanya boleh memiliki satu jenis pekerjaan untuk dilakukan seperti (logika basis data, logika logging, dan sebagainya). Contoh Skenario Pertimbangkan sebuah aplikasi yang menghitung jumlah luas semua bentuk (lingkaran, persegi, segitiga, dan lain-lain.

Kelas hanya bertanggung jawab untuk satu tujuan, artinya kelas hanya boleh memiliki satu jenis pekerjaan untuk dilakukan seperti (logika basis data, logika logging, dan sebagainya).

Skenario Contoh

Pertimbangkan aplikasi yang menghitung jumlah luas semua bentuk (lingkaran, persegi, segitiga, dan lain-lain) dalam larik tertentu dan menampilkan hasilnya dalam format apa pun yang kita perlukan.

Ditulis dengan buruk

Di kelas AreaCalculator kami tidak hanya menghitung jumlah area dari bentuk yang disediakan tetapi juga menampilkan data dalam format JSON. Pertimbangkan skenario di mana output harus dikonversi ke format lain seperti CSV, HTML, dll.

Kode ini secara fungsional benar tetapi melanggar Prinsip Tanggung Jawab Tunggal. Kelas AreaCalculator hanya boleh menghitung jumlah luas dari bentuk yang disediakan . Itu tidak boleh peduli dengan menampilkan data dalam JSON atau format lainnya.

Ditulis dengan baik

Untuk mengatasi pelanggaran ini, kita perlu membuat kelas terpisah untuk menangani keluaran data dari kelas AreaCalculator . AreaCalculatorDisplay kelas baru ini akan menangani logika untuk menampilkan data dalam format apa pun yang diberikan.

Manfaat Utama

  1. Pengujian — Kelas dengan satu tanggung jawab akan memiliki kasus uji yang jauh lebih sedikit.
  2. Kopling yang lebih rendah — Lebih sedikit fungsionalitas dalam satu kelas akan memiliki ketergantungan yang lebih sedikit.
  3. Organisasi — Kelas yang lebih kecil dan terorganisir dengan baik lebih mudah dicari daripada kelas monolitik.