Delegasi

14 September 2001

T: Apa itu delegasi?

J: Saat sebuah objek menerima permintaan, objek tersebut dapat menangani permintaan itu sendiri atau meneruskan permintaan tersebut ke objek kedua untuk melakukan pekerjaan. Jika objek memutuskan untuk meneruskan permintaan, Anda mengatakan bahwa objek tersebut telah meneruskan tanggung jawab untuk menangani permintaan tersebut ke objek kedua.

Kelas berikut Stackmemberikan contoh sederhana tentang komposisi dan penerusan:

public class Stack {private java.util.ArrayList list; public Stack () {list = new java.util.ArrayList (); } public boolean empty () {return list.isEmpty (); } Objek publik peek () {if (! empty ()) {return list.get (0); } mengembalikan null; } Objek publik pop () {if (! empty ()) {return list.remove (0); } mengembalikan null; } publik Object push (Object item) {list.add (0, item); barang yang dikembalikan; }}

Melalui komposisi, Stackberpegang pada sebuah ArrayListcontoh. Seperti yang Anda lihat, Stacklalu meneruskan permintaan ke ArrayListinstance. Komposisi sederhana dan penerusan permintaan (seperti Stackkelas yang disajikan di atas) sering keliru disebut sebagai delegasi.

Delegasi sejati sedikit lebih ketat. Dalam pendelegasian sejati, objek yang meneruskan permintaan juga mengirimkan dirinya sebagai argumen ke objek delegasi, yang sebenarnya melakukan pekerjaan.

Pikirkan pendelegasian sejati seperti ini: Sesuatu mengirim permintaan ke object1. object1lalu meneruskan permintaan dan dirinya sendiri ke object2- delegasi. object2memproses permintaan dan melakukan beberapa pekerjaan.

Untuk contoh yang sangat baik dari pendelegasian sejati, silakan lihat contoh kode untuk pola Status di Elemen Pola Desain Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali oleh Erich Gamma, dkk (lihat Sumberdaya). Anda juga dapat membaca "How to Implement State-Dependent Behavior" oleh Eric Armstrong ( JavaWorld , Agustus 1997).

Tony Sintes adalah konsultan independen dan pendiri First Class Consulting, Inc., sebuah perusahaan konsultan yang mengkhususkan diri dalam menjembatani sistem dan pelatihan perusahaan yang berbeda. Di luar Konsultasi Kelas Satu, Tony adalah penulis lepas yang aktif, serta penulis Pemrograman Berorientasi Objek Sams Teach Yourself in 21 Days.

Pelajari lebih lanjut tentang topik ini

  • Pola Desain buku Gang of Four yang terkenal , Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

    //www.amazon.com/exec/obidos/ASIN/0201633612/javaworld

  • "Bagaimana Menerapkan Perilaku Bergantung Negara," Eric Armstrong ( JavaWorld , Agustus 1997)

    //www.javaworld.com/javaworld/jw-08-1997/jw-08-stated.html

  • Ingin lebih? Lihat Indeks Q&A Java untuk katalog Q&A lengkap

    //www.javaworld.com/columns/jw-qna-index.shtml

  • Untuk lebih dari 100 tips Java berwawasan dari beberapa pemikir terbaik dalam bisnis ini, kunjungi JavaWorld 's Java Tips Index

    //www.javaworld.com/columns/jw-tips-index.shtml

  • Mendaftarlah untuk mendapatkan buletin email mingguan gratis JavaWorld

    //www.idg.net/jw-subscribe

  • Anda akan menemukan banyak artikel terkait TI dari publikasi saudara kita di .net

Cerita ini, "Delegates", awalnya diterbitkan oleh JavaWorld.