Perwakilan

14 September 2001

S: Apa itu perwakilan?

J: Ketika objek menerima permintaan, objek dapat menangani permintaan itu sendiri atau meneruskan permintaan ke objek kedua untuk melakukan pekerjaan. Sekiranya objek memutuskan untuk meneruskan permintaan, anda mengatakan bahawa objek tersebut telah meneruskan tanggungjawab untuk menangani permintaan tersebut ke objek kedua.

StackKelas berikut memberikan contoh ringkas komposisi dan pemajuan:

kelas awam Stack {senarai java.util.ArrayList swasta; public Stack () {list = java.util.ArrayList baru (); } boolean awam kosong () {return list.isEmpty (); } mengintip objek awam () {if (! kosong ()) {return list.get (0); } kembali kosong; } Pop objek awam () {if (! kosong ()) {return list.remove (0); } kembali kosong; } tolakan Objek awam (Item objek) {list.add (0, item); pulangkan barang; }}

Melalui komposisi, Stackberpegang pada ArrayListcontoh. Seperti yang anda lihat, Stackteruskan permintaan ke ArrayListinstance. Komposisi sederhana dan penerusan permintaan (seperti Stackkelas yang ditunjukkan di atas) sering disalah anggap sebagai perwakilan.

Perwakilan sejati sedikit lebih ketat. Dalam perwakilan yang benar, objek yang meneruskan permintaan juga diteruskan sebagai argumen kepada objek perwakilan, yang sebenarnya berfungsi.

Fikirkan perwakilan sejati dengan cara ini: Sesuatu menghantar permintaan kepada object1. object1kemudian mengemukakan permintaan dan dirinya kepada object2- perwakilan. object2memproses permintaan dan melakukan beberapa kerja.

Untuk contoh perwakilan yang benar, sila lihat kod contoh untuk corak Negara dalam Reka Bentuk Elemen Perisian Berorientasikan Objek yang Boleh Digunakan Semula oleh Erich Gamma, et al (lihat Sumber). Anda juga dapat melihat "Cara Melaksanakan Tingkah Laku yang Bergantung pada Negara" oleh Eric Armstrong ( JavaWorld , Ogos 1997).

Tony Sintes adalah perunding bebas dan pengasas First Class Consulting, Inc., sebuah syarikat perunding yang pakar dalam merapatkan sistem dan latihan perusahaan yang berbeza. Di luar Konsultasi Kelas Pertama, Tony adalah penulis bebas yang aktif, dan juga pengarang Pengaturcaraan Berorientasikan Objek Sams Teach Yourself dalam 21 Hari.

Ketahui lebih lanjut mengenai topik ini

  • Corak Reka Bentuk 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

  • "Cara Melaksanakan Tingkah Laku yang Bergantung pada Negara," Eric Armstrong ( JavaWorld , Ogos 1997)

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

  • Mahu lebih? Lihat Indeks Soal Jawab Java untuk katalog Q&A lengkap

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

  • Untuk lebih dari 100 petua Java yang berwawasan dari beberapa pemikiran terbaik dalam perniagaan ini, kunjungi JavaWorld 's Java Tips Index

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

  • Daftar untuk mendapatkan buletin e-mel percuma JavaWorld

    //www.idg.net/jw-subscribe

  • Anda akan mendapat banyak artikel berkaitan IT dari penerbitan saudara kami di .net

Kisah ini, "Delegates" pada awalnya diterbitkan oleh JavaWorld.