Apa Prinsip Tanggung Jawab Tunggal?

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

Wanita melakukan handstand dengan komputer

Contoh prinsip tanggung jawab tunggal dapat berbentuk 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 caral tanggung jawab tunggal, di mana satu objek seharusnya hanya memiliki satu tanggung jawab, maka handset akan terdiri dari beberapa objek terpisah yang masing-masing melakukan fungsi tunggal, seperti hanya menerima input dari saluran telepon, atau hanya mengeluarkan data melalui lubang suara.

Salah satu keuntungan yang dimungkinkan oleh prinsip tanggung jawab tunggal 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 antarmuka.Selain itu, penggunaan kembali komponen tertentu bisa sangat tinggi, karena setiap kelas sepenuhnya dienkapsulasi dan sangat sedikit bergantung, jika sama sekali, pada objek di sekitarnya, alih-alih berfokus pada satu tanggung jawabnya.

Komplikasi yang mungkin dibuat oleh prinsip tanggung jawab tunggal adalah sejumlah 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 mempersulit proses debug program besar, karena satu porsi program 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 memanipulasi data dipisahkan untuk tujuan desain.Meskipun ini mengarah pada kebebasan, enkapsulasi, dan modularitas tertentu dalam desain, ini juga dapat menghasilkan sejumlah pola dan desain perantara yang harus digunakan untuk memfasilitasi sejumlah kelas yang semuanya mencoba berinteraksi dengan data sekaligus.Di sisi lain, jika data objek dan metode yang digunakan untuk memanipulasi semuanya terikat bersama dalam satu objek multi-tanggung jawab, maka kode dapat menjadi lebih sulit untuk dimodifikasi karena sistem berskala, berubah, atau menjadi lebih kompleks.