Skip to main content

Apa prinsip tanggung jawab tunggal?

Dalam pemrograman dan desain komputer, prinsip tanggung jawab tunggal adalah konsep yang mendukung pandangan bahwa kelas mana pun dalam suatu program harus melakukan hanya satu fungsi dalam aplikasi yang lebih besar.Gagasan ini sebagian mempromosikan beberapa cita -cita pemrograman berorientasi objek, seperti enkapsulasi, karena seluruh kelas akan difokuskan pada melakukan satu tanggung jawab dan akan memiliki sedikit ketergantungan pada kelas luar.Pada saat yang sama, ini agak bertentangan dengan beberapa konsep pemrograman berorientasi objek awal, karena fungsi objek tunggal dipisahkan dari data yang ditangani objek, yang berarti banyak objek dalam kombinasi mungkin perlu dibangun untuk mempertahankanbeberapa data pusat.Prinsip tanggung jawab tunggal adalah dasar untuk jenis model desain yang dikenal sebagai desain yang digerakkan oleh tanggung jawab.

Contoh prinsip tanggung jawab tunggal dapat mengambil bentuk handset telepon tradisional.Beberapa prinsip desain akan melihat handset sebagai objek tunggal yang menangani input dari saluran telepon dan transmisi output dari speaker.Di bawah model tanggung jawab tunggal, di mana satu objek seharusnya hanya memiliki tanggung jawab tunggal, maka handset akan terdiri dari beberapa objek terpisah yang masing -masing melakukan satu fungsi, seperti hanya menerima input dari saluran telepon, atau hanya menghasilkan data melaluiEarpiece.

Salah satu keuntungan yang menggunakan prinsip tanggung jawab tunggal dimungkinkan adalah tingkat abstraksi dan modularitas yang sangat tinggi.Dalam contoh handset, baik input dari saluran telepon atau cara sinyal dikeluarkan ke pengguna dapat diubah tanpa mempengaruhi kelas tetangga selama mereka mematuhi kontrak yang sama untuk berinteraksi.Selain itu, penggunaan kembali komponen -komponen tertentu bisa sangat tinggi, karena setiap kelas sepenuhnya dienkapsulasi dan sangat sedikit bergantung pada, jika sama sekali, pada objek di sekitarnya, dengan fokus pada satu tanggung jawabnya.

Komplikasi yang mungkin dibuat oleh prinsip tanggung jawab tunggal adalahSejumlah besar kelas dan objek yang semuanya beroperasi pada data yang sama.Ini bisa berarti sejumlah besar overhead dan proses desain yang rumit.Ini juga dapat membuat debugging program besar menjadi sulit, karena satu bagian dari program ini dapat terdiri dari ribuan file kelas kecil.

Ketika prinsip tanggung jawab tunggal diterapkan melalui desain yang digerakkan oleh tanggung jawab, data dan metode yang digunakan untuk memanipulasiData dipisahkan untuk tujuan desain.Meskipun ini mengarah pada kebebasan tertentu, enkapsulasi dan modularitas dalam desain, itu juga dapat menghasilkan sejumlah pola dan desain menengah yang harus digunakan untuk memfasilitasi sejumlah kelas yang semuanya berusaha berinteraksi dengan data sekaligus.Di sisi lain, jika data objek dan metode yang digunakan untuk memanipulasi semuanya terikat bersama dalam satu objek multi-responsibilitas, maka kode dapat menjadi lebih sulit untuk dimodifikasi sebagai skala sistem, mengubah atau menjadi lebih kompleks.