ÖйúIT¶¯Á¦,×îÐÂ×îÈ«µÄIT¼¼Êõ½Ì³Ì
×îÐÂ100ƪ | ÍÆ¼ö100ƪ | רÌâ100ƪ | ÅÅÐаñ | ËÑË÷ | ÔÚÏßAPIÎĵµ | ÍøÍ¨¾µÏñ
Ê× Ò³ | ³ÌÐò¿ª·¢ | ²Ù×÷ϵͳ | Èí¼þÓ¦Óà| Í¼ÐÎͼÏó | ÍøÂçÓ¦Óà| ¾«ÎÄÜöÝÍ | ½ÌÓýÈÏÖ¤ | Ó²¼þά»¤ | Î´ÕûÀíÆª | Õ¾³¤½Ì³Ì
ASP JS PHP¹¤³Ì ASP.NET ÍøÕ¾½¨Éè UML J2EESUN .NET VC VB VFP ÍøÂçά»¤ Êý¾Ý¿â DB2 SQL2000 Oracle Mysql
·þÎñÆ÷ Win2000 Office C DreamWeaver FireWorks Flash PhotoShop ÉÏÍø±¦µä CorelDraw ЭÒé´óÈ« ÍøÂ簲ȫ ΢ÈíÈÏÖ¤
Ó²¼þά»¤  CPU  Ö÷°å  Ó²ÅÌ  ÄÚ´æ  ÏÔ¿¨  ÏÔʾÆ÷  ¼üÅÌÊó±ê  Éù¿¨ÒôÏä  ´òÓ¡»ú  »úÏäµçÔ´  BIOS  Íø¿¨  C#  Java  Delphi  vs.net2005
  µ±Ç°Î»Öãº> δÕûÀíÆª
delegationģʽ
×÷Õß:mildwind ʱ¼ä:2003-02-22 11:11 ³ö´¦:»¥ÁªÍø Ôð±à:chinaitpower
              ÕªÒª£ºdelegationģʽ

2004-10-28׫д

¶ÁGlobus Toolkit±à³ÌÎĵµÊ±£¬ÀïÃæÔÚʵÏÖoperation providerʱÌáµ½ÁËdelegationģʽ¡£
GOFµÄÉè¼ÆÄ£Ê½ÀïºÃÏñûÓÐÕâ¸öģʽ£¬»¹ºÃÍøÉÏÕÒµ½ÁËÏà¹ØµÄÎĵµ¡£·­ÒëÈçÏ£º

ίÍÐģʽ:£¨Ó¦¸Ã·­Òë³ÉίÍаɣ¬Èç¹û·­Òë³É´úÀíÈÝÒ׺Íproxyģʽ»ìÏý£©
ίÍÐģʽÊÇÒ»ÖÖ¼¼Êõ,Ò»¸ö¶ÔÏóÔÚÍâ½çÀ´¿´ºÃÏñʵÏÖÁËһЩÐÐΪ,µ«Êµ¼ÊÉÏÊÇίÍиøÏà¹ØµÄÆäËûÀàÀ´ÊµÏÖÐÐΪµÄ.ÔÚ²»¿ÉÒÔʹÓü̳Ð,¶ø²ÉÓþۺÏʱ,±ØÐëʹÓÃÕâÖÖ¼¼Êõ.

Ò»¸ö¼òµ¥µÄjavaÀý×Ó£º
Õâ¸öÀý×ÓÖÐ,CÓµÓе÷ÓÃAÖÐf()ºÍg()µÄ²å¿Ú.¿´ÆðÀ´CºÃÏñÓÐAµÄ¹¦ÄÜ.

 class A {
   void f() { system.out.println("A: doing f()"; }
   void g() { system.out.println("A: doing g()"; }
 }
 class C {
   // delegation
   A a = new A();
   void f() { a.f(); }
   void g() { a.g(); }
   // normal attributes
   X x = new X();
   void y() { /* do stuff */ }
 }
 void main() {
   C c = new C();
   c.f();
   c.g();
 }

ÁíÒ»¸ö¸´ÔÓЩµÄjavaÀý×Ó.
ʹÓýӿÚ+ίÍпÉÒÔÌá¸ß³ÌÐòÁé»îÐÔ,ºÍÀàÐ͵ݲȫÐÔ.Õâ¸öÀý×ÓÖÐ,C´úÀíÁËA,B¶þÕßÖ®Ò».C¿ÉÒÔÔÚA,BÖ®¼äÇл».ÓÉÓÚA,B¶¼±ØÐëͨ¹ýʵÏÖ½Ó¿ÚÒÔʵÏÖ¹¦ÄÜ,Õâ¾ÍÌá¸ßÁËÁËÀàÐͰ²È«ÐÔ.×÷ΪÕÛÖÐ,µ±È»Ò²ÐèҪд¸ü¶àµÄ´úÂë.

 interface I {
   void f();
   void g();
 }
 class A implements I {
   void f() { system.out.println("A: doing f()"; }
   void g() { system.out.println("A: doing g()"; }
 }
 class B implements I {
   void f() { system.out.println("B: doing f()"; }
   void g() { system.out.println("B: doing g()"; }
 }

 class C implements I {
   // delegation
   I i = new A();
   void f() { i.f(); }
   void g() { i.g(); }
   // normal attributes
   void toA() { i = new A(); }
   void toB() { i = new B(); }
 }
 void main() {
   C c = new C();
   c.f();
   c.g();
 }

ȱµã:Õâ¸öģʽÊǵäÐ͵ÄÎþÉüÐÔÄÜÌá¸ß³éÏó³ÌÐòµÄÇåÎú³Ì¶È. (»òÕß˵Ìá¸ß´úÂë¿É¶ÁÐÔ)


¹Ø±Õ±¾Ò³
 
Ê×Ò³ | Ͷ×ÊÓëºÏ×÷ | ·þÎñÌõ¿î | Òþ˽Õþ²ß | Êղر¾Õ¾ | ÉèΪÊ×Ò³ | ÐÂÓû§×¢²á | ÃâÔðÉùÃ÷ | ʹÓðïÖú
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com °æÈ¨ËùÓÐ