Pola rantai tanggung jawab adalah pola perilaku objek. Dalam mode rantai tanggung jawab, banyak objek dihubungkan oleh referensi masing -masing objek ke rumah berikutnya untuk membentuk rantai. Permintaan diteruskan pada rantai ini sampai objek pada rantai memutuskan untuk memproses permintaan. Klien yang membuat permintaan ini tidak tahu objek mana yang pada rantai pada akhirnya menangani permintaan, yang memungkinkan sistem untuk secara dinamis mengatur ulang dan menetapkan tanggung jawab tanpa mempengaruhi klien.
Model rantai tanggung jawab adalah salah satu model desain perilaku. Bagaimana cara memahami rantai tanggung jawab? Rantai tanggung jawab dapat dipahami sebagai menghubungkan beberapa objek di awal dan akhir. Setiap node adalah objek, dan setiap objek sesuai dengan logika pemrosesan yang berbeda sampai suatu objek merespons permintaan pemrosesan berakhir. Model ini menjadi model rantai tanggung jawab.
Bisakah kita menemukan prototipe model rantai tanggung jawab dalam kehidupan? Ada banyak contoh jenis ini. Misalnya, jika Anda ingin membeli rumah, hal pertama adalah wiraniaga (aplikasi 1) menerima Anda. Jika Anda mengatakan Anda menginginkan diskon 3%, tidak ada masalah. Pada saat ini, wiraniaga akan memiliki wewenang untuk memberikan diskon 3%, dan wiraniaga (Aplikasi 1) akan menanganinya. Pada saat ini, seorang pria kaya datang dan mengatakan bahwa ia ingin membeli 10 unit dan meminta diskon 5%. Staf penjualan (Aplikasi 1) tidak memiliki wewenang untuk memberikan diskon 5%. Dia harus mendaftar ke pemimpin superior, direktur penjualan, dan direktur penjualan (Aplikasi 2) menyetujui aplikasi tersebut. Pada saat ini, suami nasional Xiao Wang datang. Xiao Wang mengatakan bahwa dia telah membeli semua properti sepuluh persen. Pada saat ini, Direktur Penjualan (Target 2) tidak memiliki banyak wewenang dan harus mengajukan persetujuan dari CEO.
Dengan kata lain, setiap pelanggan diterima oleh tenaga penjualan. Pelanggan mengusulkan izin yang berbeda dan wiraniaga menyerahkannya ke objek yang berbeda untuk pengiriman. Klien tidak peduli objek mana yang menangani permintaannya, yang mengurangi hubungan kopling antara pengirim dan penerima permintaan.
Di bawah ini, kami menggunakan persetujuan biaya perjalanan perjalanan bisnis sebagai contoh untuk mengimplementasikan model rantai tanggung jawab berikut, pertama -tama mendefinisikan kelas kepemimpinan abstrak:
paket com.test.demo; Pemimpin Kelas Abstrak Publik {Pemimpin yang Dilindungi Nexthandler; // Kepemimpinan sebelumnya Void HandlerRequest Publik (int Money) {if (uang <= limit ()) {// selse {if (nexthandler! = null) {nexthandler.handlerRequest (uang);/serahkan ke kepemimpinan sebelumnya {nextHandler.handlerRequest (uang);//serahkan pada kepemimpinan sebelumnya {nextHandler.handlerRequest (uang);//serahkan pada kepemimpinan sebelumnya {nexthandler. /** Persetujuan*/ pawang abstrak publik pawang (int uang); }Ini adalah kelas abstrak. Berikut ini mewarisi melalui beberapa kelas. Pertama, kelas pemimpin kelompok:
paket com.test.demo; Groupleader kelas publik memperluas pemimpin {public int limit () {return 1000; // menunjukkan bahwa pemimpin tim memiliki 1.000 otoritas persetujuan yuan} public void handler (int money) {System.out.println ("pemimpin tim disetujui"+uang); }}Kategori Supervisor:
paket com.test.demo; Direktur kelas publik memperluas pemimpin {@Override public int limit () {return 5000; } @Override public void handler (int money) {System.out.println ("Pengawas disetujui"+uang); }}Kategori Manajer:
paket com.test.demo; manajer kelas publik memperluas pemimpin {@override public int limit () {return 10000; } @Override public void handler (int money) {System.out.println ("Manajer disetujui"+uang); }}Kategori Bos:
paket com.test.demo; CEO kelas publik memperluas pemimpin {@override public int limit () {return integer.max_value; } @Override public void handler (int money) {System.out.println ("CEO Disetujui"+uang); }}Tidak ada batasan untuk bos. Berikut adalah definisi anggota staf Xiao Zhang yang mengajukan permohonan penggantian perjalanan:
paket com.test.demo; kelas publik xiaozhang {public static void main (string [] args) {groupleader groupleader = new groupleader (); Direktur Direktur = Direktur Baru (); Manajer Manajer = Manajer Baru (); CEO CEO = CEO baru (); groupleader.nexthandler = sutradara; Director.nexthandler = Manajer; manajer.nexthandler = CEO; Groupleader.HandlerRequest (50000); Groupleader.HandlerRequest (500); Groupleader.HandlerRequest (5000); }}Xiao Zhang mengajukan tiga transaksi seperti pemimpin tim. Saat ini, contoh operasi adalah sebagai berikut:
Kita dapat melihat bahwa dana yang berbeda diproses oleh objek yang berbeda. Xiao Zhang tidak peduli siapa yang menanganinya. Dia hanya perlu menemukan pemimpin tim. Ini adalah karakteristik dari model rantai tanggung jawab.
Ini semua bagi Anda untuk memperkenalkan konten yang relevan pada model desain rantai tanggung jawab Java. Saya harap ini akan membantu Anda!