Java °æ (¾«»ªÇø)

·¢ÐÅÈË: wpf (I'llTouchTheBlueSky), ÐÅÇø: Java
±ê  Ìâ: ÎªÐÔÄܶøÉè¼Æ(3) 
·¢ÐÅÕ¾: ¹þ¹¤´ó×϶¡Ïã (2001Äê11ÔÂ08ÈÕ19:34:55 ÐÇÆÚËÄ), Õ¾ÄÚÐżþ

·¢ÐÅÈË: SuperMMX (ЦÌì×Ó*²»ÔٺȿÉÀÖ), ÐÅÇø: Java
±ê  Ìâ: ÎªÐÔÄܶøÉè¼Æ(3)
·¢ÐÅÕ¾: BBS Ë®Ä¾Ç廪վ (Thu Nov  8 18:10:09 2001)
À´×Ô http://SuperMMX.dhs.org/forum
Ô­ÎÄÇëµ½´ËÕ¾²é¿´.
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡[b]ΪÐÔÄܶøÉè¼Æ, µÚÈý²¿·Ö: Ô¶³Ì½Ó¿Ú[/b]
             [b]ѧϰÔõÑùÔÚÉè¼Æ Java ÀàµÄʱºò±ÜÃâÐÔÄÜðÏÕ.[/b]
[b][u]¸ÅÊö[/u][/b]
Ðí¶à Java µÄͨ³£ÐÔÄÜÎÊÌâÀ´Ô´ÓÚÉè¼Æ¹ý³ÌÔçÆÚµÄÀàÉè¼ÆÏë·¨ÖÐ, ÔçÔÚ¿ª·¢Õß¿ªÊ¼¿¼ÂÇ

ÐÔÄÜÎÊÌâ֮ǰ. ÔÚÕâ¸öϵÁÐÖÐ, Brian Goetz ÌÖÂÛÁËһЩͨ³£µÄ Java ÐÔÄܵÄðÏÕ, ½â

ÊÍÁËÔõÑùÔÚÉè¼Æʱ¼ä±ÜÃâËüÃÇ. ÔÚÕâƪÎÄÕÂÖÐ, Ëü¼ìÑéÁËÔ¶³ÌÓ¦ÓóÌÐòÖеÄÌض¨µÄÐÔÄÜ

ÎÊÌâ.
By Brian Goetz
·­Òë by SuperMMX
Õâ¸öϵÁÐ̽Ë÷һЩÔçÆÚµÄÉè¼Æ˼Ïë¶ÔÓ¦ÓóÌÐòµÄÐÔÄܲúÉúÓ°ÏìµÄ·½·¨. µÚÒ»²¿·Ö, ¼ì²é
ÁË
Ò»¸öÀàµÄ¶ÔÏó´´½¨ÐÐΪÊÇÈçºÎǶÈëËüµÄ½Ó¿ÚÖеÄ. Ìض¨µÄ½Ó¿Úʵ¼ÊÉÏÒªÇóÒ»¸öÀà´´½¨ÁÙ
ʱ
¶ÔÏó, »òÕßÐèÒªËüµÄµ÷ÓÃÕßÀ´´´½¨ÁÙʱ¶ÔÏó, ²ÅÄÜʹÓÃÕâ¸öÀà. ÒòΪÁÙʱ¶ÔÏóµÄ´´½¨¶Ô
 Jav
³ÌÐòÀ´ËµÊÇÒ»¸öÐÔÄÜÖ¸±ê, µ±ÄãÔÚÉè¼Æʱºò, ÄÜÔÙ¶ÔÄãµÄÀà½Ó¿Ú×öһЩ»Ø¹ËÀ´¼ì²éÐÔÄÜ
ðÏÕ
ÕâÊÇÖµµÃµÄ.
ÔÚµÚÒ»ºÍµÚ¶þ²¿·ÖÎÒ¼¯ÖÐÓÚ¶ÔÏóµÄ´´½¨, ÒòΪ¶ÔÐí¶à Java ³ÌÐòÀ´ËµÕâÊÇÒ»¸öºÜ´óµÄÐÔ
ÄÜÎÊÎÊÌâ.
µ«ÊÇ, ÔÚ·Ö²¼Ê½µÄÓ¦ÓóÌÐòÖÐ, Ïó½¨Á¢ÔÚ RMI, CORBA, »òÕß COM Ö®ÉϵijÌÐò, Ò»¸öÍê
È«²»²»Í
µÄÐÔÄÜÎÊÌâ¾ÍÔÚÑÛÇ°ÁË. ÕâƪÎÄÕÂ̽Ë÷һЩÕë¶ÔÔ¶³Ì³ÌÐòµÄÐÔÄÜÎÊÌâ, ÑÝʾÄã
ÔõÑù²ÅÄÜͨ¹ý¹ý¼
µ¥µØ¼ì²éÒ»¸öÀàµÄ½Ó¿ÚÀ´Ô¤²âµ½·Ö²¼Ê½Ó¦ÓóÌÐòÖеÄÐÔÄÜÎÊÌâ.
ÔĶÁÕâ¸ö "ΪÐÔÄܶøÉè¼Æ" ÏµÁÐ:
µÚÒ»²¿·Ö: ½Ó¿ÚÊÂÒË
µÚ¶þ²¿·Ö: ¼õÉÙ¶ÔÏó´´½¨
µÚÈý²¿·Ö: Ô¶³Ì½Ó¿Ú
[b][u]Ô¶³Ìµ÷ÓõĸŹÛ[/u][/b]
ÔÚ·Ö²¼Ê½µÄÓ¦ÓóÌÐòÖÐ, Ò»¸öÔËÐÐÔÚÒ»¸öϵͳÖеĶÔÏó¿ÉÒÔµ÷ÓÃÁíÒ»¸öϵͳÖеÄÒ»¸ö¶Ô
Ïó
µÄ·½·¨. Õâ¸öͨ¹ýºÜ¶àʹԶ³Ì¶ÔÏó±íÏÖΪ±¾µØµÄ½á¹¹µÄ°ïÖú¶øʵÏÖ. Òª·ÃÎÊÒ»¸öÔ¶³Ì¶Ô
Ïó,
ÄãÊ×ÏÈÒªÕÒµ½Ëü, ¿ÉÒÔͨ¹ýʹÓÃĿ¼»òÕßÃüÃû·þÎñÀ´ÊµÏÖ, Ïó RMI ×¢²á, JNDI, »òÕß 
CORB
ÃüÃû·þÎñ.
µ±Äãͨ¹ýĿ¼·þÎñµÃµ½Ò»¸öÔ¶³Ì¶ÔÏóµÄÒýÓÃʱ, Ä㲢ûÓеõ½ÄǸö¶ÔÏóµÄʵ¼ÊµÄÒýÓÃ, 
¶ø
ÊÇÒ»¸öʵÏÖÁ˺ÍÔ¶³Ì¶ÔÏóͬÑù½Ó¿ÚµÄstub¶ÔÏóµÄÒýÓÃ. µ±Äãµ÷ÓÃÒ»¸östub¶ÔÏóµÄ·½·¨Ê±
, ÕâÕâ¸
¶ÔÏó°Ñ·½·¨µÄËùÓвÎÊý»ã¼¯ÆðÀ´ -- °ÑËüÃÇת»¯³ÉÒ»¸ö×Ö½ÚÁ÷µÄ±íÏÖÐÎʽ, Àà
ËÆÓÚÐòÁл¯µÄ
¹ý³Ì. Õâ¸östub¶ÔÏó°Ñ»ã¼¯µÄ²ÎÊýͨ¹ýÍøÂç´«µÝ¸øÒ»¸öskeleton¶ÔÏó, °Ñ²ÎÊý·Ö½â³öÀ´
, µ÷µ÷Ó
ÄãÏëµ÷ÓõÄʵ¼ÊµÄ¶ÔÏóµÄ·½·¨. È»ºóÕâ¸ö·½·¨Ïòskeleton¶ÔÏó·µ»ØÒ»¸öÖµ, sk
eleton¶ÔÏó°Ñ°Ñ·µ»ØÖµ»ã¼
ÆðÀ´, °ÑËü´«Ë͸østub¶ÔÏó, stub¶ÔÏó°ÑËü·Ö½â³öÀ´, ´«µÝ
¸øµ÷ÓÃÕß. Phew! Ò»¸öµ¥¶ÀµÄ·½·½·
µ÷ÓÃÒª×öÕâô¶àµÄ¹¤×÷. ºÜÃ÷ÏÔ, ³ýÈ¥±íÃæµÄÏàËÆ
ÐÔ, Ò»¸öÔ¶³Ì·½·¨µ÷Óñȱ¾µØ·½·¨µ÷Óôú´ú¼
¸ü´ó.
ÒÔÉÏÃèÊöä¯ÀÀÁËһЩ¶ÔÓÚ³ÌÐòÐÔÄܷdz£ÖØÒªµÄϸ½Ú. µ±Ò»¸öÔ¶³Ì·½·¨·µ»ØµÄ²»ÊÇÒ»¸öÔ­
ÀàÐÍÐÍ,
¶øÊÇÒ»¸ö¶ÔÏóʱ, »á·¢Éúʲô? ²»Ò»¶¨. Èç¹û·µ»ØµÄ¶ÔÏóÊÇÒ»ÖÖÖ§³ÖÔ¶³Ì·½·¨µ÷ÓõÄÀà
ÐÍ,
Ëü¾Í´´½¨Ò»¸öÖÐstub¶ÔÏóºÍÒ»¸öskeleton¶ÔÏó, ÔÚÕâÖÖÇé¿öÏÂÐèÒªÔÚ×¢²á±íÖвéÕÒÒ»¸ö
Ô¶³Ì³Ì¶ÔÏó
ÕâÏÔÈ»ÊÇÒ»¸ö¸ß´ú¼ÛµÄ²Ù×÷. (Ô¶³Ì¶ÔÏóÖ§³ÖÒ»ÖÖ·Ö²¼Ê½µÄÀ¬»ø»ØÊÕµÄÐÎʽ, °üÀ¨ÁËÿһ
¸ö
²ÎÓëµÄ JVM Î¬»¤Ò»¸öÏß³ÌÀ´ºÍÆäËû JVM µÄά»¤Ï߳̽øÐÐͨѶ, À´»Ø´«µÝÒýÓÃÐÅÏ¢). Èç
¹û
·µ»ØµÄ¶ÔÏó²»Ö§³ÖÔ¶³Ìµ÷ÓÃ, Õâ¸ö¶ÔÏóËùÓеÄÓòºÍÒýÓõĶÔÏó¶¼Òª»ã¼¯ÆðÀ´, ÕâÒ²ÊÇÒ»
¸ö¸ß
´ú¼ÛµÄ²Ù×÷.
[b][u]Ô¶³ÌºÍ±¾µØ·½·¨µ÷ÓõÄÐÔÄܱȽÏ[/u][/b]
Ô¶³Ì¶ÔÏó·ÃÎʵÄÐÔÄÜÌØÕ÷ºÍ±¾µØµÄ²»Ò»Ñù:
Ô¶³Ì¶ÔÏóµÄ´´½¨±È±¾µØ¶ÔÏó´´½¨´ú¼ÛÒª¸ß. ²»½ö½öÊǵ±Ëü²»´æÔÚʱҪ´´½¨Ëü, ¶øÇÒstub
¶ÔÏó
ºÍskeleton¶ÔÏóÒ²Òª´´½¨, »¹Òª»¥Ïà¸ÐÖª.
Ô¶³Ì·½·¨µ÷Óû¹°üÀ¨ÍøÂçµÄ´«µÝ -- »ã¼¯ÆðÀ´µÄ²ÎÊý±ØÐë·¢Ë͵½Ô¶³Ìϵͳ, ¶øÇÒÏìÓ¦Ò²
ÐèÒª
»ã¼¯ÆðÀ´, ÔÚµ÷ÓóÌÐòÖØеõ½¿ØÖÆȨ֮ǰ·¢ËÍ»ØÀ´. »ã¼¯, ·Ö½â, ÍøÂçÑÓʱ, Êµ¼ÊµÄ
Ô¶³Ì
µ÷ÓÃËùµ¼ÖµÄÑÓ³Ù¶¼¼ÓÔÚÒ»Æð; ¿Í»§¶Ëͨ³£ÊǵȴýËùÓÐÕâЩ¶ø²½ÖèÍê³É. Ò»¸öÔ¶³Ìµ÷ÓÃ
Ò²ºÜ
´óµØÒÀÀµÓڵײãÍøÂçµÄÑÓʱ.
²»Í¬µÄÊý¾ÝÀàÐÍÓв»Í¬µÄ»ã¼¯¿ªÖ§. »ã¼¯Ô­ÀàÐÍÏà¶ÔÀ´Ëµ»¨·ÑÉÙһЩ; »ã¼¯¼òµ¥µÄ¶ÔÏó
, Ïó
Point »òÕß String Òª¶àһЩ; »ã¼¯Ô¶³Ì¶ÔÏóÒª¶àµÃ¶à, ¶ø»ã¼¯ÄÇЩÒýÓ÷dz£¶àµÄ¶ÔÏó
µÄ
¶ÔÏó(Ïó collection µÈ)Òª¸ü¶à. ÕâºÍ±¾µØµ÷ÓÃÍêȫì¶Ü, ÒòΪ´«µÝÒ»¸ö¼òµ¥¶ÔÏóµÄÒý
Óò»²»±
Ò»¸ö¸´ÔÓ¶ÔÏóµÄÒýÓû¨·Ñ¶à.
[b][u]½Ó¿ÚÉè¼ÆÊǹؼü[/u][/b]
Éè¼Æ²»ºÃµÄÔ¶³Ì½Ó¿Ú¿ÉÄÜÍêÈ«Ïû³ýÒ»¸ö³ÌÐòµÄÐÔÄÜ. ²»ÐÒµÄÊÇ, ¶Ô±¾µØ¶ÔÏóÀ´ËµºÃµÄ½Ó
¿Ú
µÄÌØÐÔ¶ÔÔ¶³Ì¶ÔÏó¿ÉÄܲ»ÊʺÏ. ´óÁ¿µÄÁÙʱ¶ÔÏó´´½¨, ¾ÍÏóÔÚ±¾ÏµÁеĵÚÒ», ¶þ²¿·ÖÌÖ
ÂÛµÄ
Ò²ÄÜ×è°­·Ö²¼Ê½µÄÓ¦ÓóÌÐò, µ«ÊÇ´óÁ¿µÄ´«µÝ¸üÊÇÒ»¸öÐÔÄÜÎÊÌâ. ËùÒÔ, µ÷ÓÃÒ»¸öÔÚÒ»
¸öÁÙ
ʱ¶ÔÏó(±ÈÈçÒ»¸ö Point)Öзµ»Ø¶à¸öÖµµÄ·½·¨±È¶à´Îµ÷ÓÃÀ´·Ö±ðµÃµ½ËüÃÇ¿ÉÄܸüÓÐЧ. 
(×¢
Òâ, ÕâºÍÔÚµÚ¶þ²¿·Ö¸ø±¾µØ¶ÔÏóÌá³öµÄ½¨Òé I ÍêÈ«Ïà·´.)
[b][u]ʵ¼ÊÔ¶³ÌÓ¦ÓóÌÐòµÄһЩÖØÒªµÄÐÔÄÜÖ¸µ¼:[/u][/b]
Ìá·À²»±ØÒªµÄÊý¾Ý´«µÝ. Èç¹ûÒ»¸ö¶ÔÏóҪͬʱµÃµ½¼¸¸öÏà¹ØµÄÏî, Èç¹û¿ÉÄܵĻ°, ÔÚÒ»
¸ö
Ô¶³Ìµ÷ÓÃÖÐʵÏÖ¿ÉÄÜÈÝÒ×һЩ.
µ±µ÷ÓÃÕß¿ÉÄܲ»±ØÒª±£³ÖÒ»¸öÔ¶³Ì¶ÔÏóµÄÒýÓÃʱ, Ìá·À·µ»ØÔ¶³ÌµÄ¶ÔÏó.
µ±Ô¶³Ì¶ÔÏó²»ÐèÒªÒ»¸ö¶ÔÏóµÄ¿½±´Ê±, Ìá·À´«µÝ¸´ÔÓ¶ÔÏó.
ÐÒÔ˵ÄÊÇ, Äã¿ÉÒÔͨ¹ý¼òµ¥²é¿´Ô¶³Ì¶ÔÏóµÄ½Ó¿ÚÀ´ÕÒ³öËùÓеÄÎÊÌâ. ÒªÇó×öÈκθ߲㶯
×÷
µÄ·½·¨µ÷ÓÃÐòÁпÉÒÔ´ÓÀà½Ó¿ÚÖÐÃ÷ÏÔ¿´µ½. Èç¹ûÄã¿´µ½Ò»¸öͨ³£µÄ¸ß²ã²Ù×÷ÐèÒªÐí¶àÁ¬
Ðø
µÄÔ¶³Ì·½·¨µ÷ÓÃ, Õâ¾ÍÊÇÒ»¸ö¾¯¸æÐźÅ, ¿ÉÄÜÄãÐèÒªÖØв鿴һÏÂÀà½Ó¿Ú.
[b][u]¼õÉÙÔ¶³Ìµ÷Óôú¼ÛµÄ¼¼ÇÉ[/u][/b]
Ò»¸öÀý×Ó, ¿¼ÂÇÏÂÃæ¼Ù¶¨µÄ¹ÜÀíÒ»¸ö×é֯Ŀ¼µÄÓ¦ÓóÌÐò: Ò»¸öÔ¶³ÌµÄ Directory ¶ÔÏó
°ü
º¬ÁË DirectoryEntry ¶ÔÏóµÄÒýÓÃ, ±íÏÖÁ˵绰²¾µÄÈë¿Ú.
[code]
public interface Directory extends Remote {
  DirectoryEntry[] getEntries();
  void addEntry(DirectoryEntry entry);
  void removeEntry(DirectoryEntry entry);
}
public interface DirectoryEntry extends Remote {
  String getName();
  String getPhoneNumber();
  String getEmailAddress();
}
[/code]
ÏÖÔÚ¼ÙÉèÄãÏëÔÚÒ»¸ö GUI email ³ÌÐòÖÐʹÓàDirectory µÄ¶«Î÷. ³ÌÐòÊ×Ïȵ÷ÓÃ
getEntries() À´µÃµ½Èë¿ÚµÄÁбí, ½Ó×ÅÔÚÿ¸öÈë¿ÚÖе÷ÓàgetName(), ¼ÆËã½á¹ûµÄÁбí
,
µ±Óû§Ñ¡ÔñÒ»¸öʱ,  Ó¦ÓóÌÐòÔÚÏàÓ¦µÄÈë¿Úµ÷ÓàgetEmailAdress() À´µÃµ½ email µØ
Ö·.
ÔÚÄãÄܹ»Ð´Ò»·â email Ö®Ç°ÓжàÉÙÔ¶³Ì·½·¨µ÷ÓñØÐë·¢Éú? Äã±ØÐëµ÷ÓàgetEntries()
 Ò»
´Î, µØÖ·²¾ÖÐÿ¸öÈë¿Úµ÷ÓÃÒ»´Î getName(), Ò»´Î getEmailAddress(). ËùÒÔÈç¹ûÔÚµØ
Ö·²¾
ÖÐÓРN ¸öÈë¿Ú, Äã±ØÐë½øÐРN + 2 ´ÎÔ¶³Ìµ÷ÓÃ. ×¢ÒâÄãÒ²ÐèÒª´´½¨ N + 1 ¸öÔ¶³Ì¶ÔÏó
Òý
ÓÃ, Ò²ÊÇÒ»¸ö´ú¼ÛºÜ¸ßµÄ²Ù×÷. Èç¹ûÄãµÄµØÖ·²¾ÓÐÐí¶àÈë¿ÚµÄ»°, ²»½ö½öÊÇ´ò¿ª email
 ´°
¿ÚµÄʱºò·Ç³£Âý, Ò²Ôì³ÉÁËÍøÂç×èÈû, ¸øÄãµÄĿ¼·þÎñ³ÌÐòÔì³É¸ß¸ºÔØ, µ¼Ö¿ÉÀ©Õ¹ÐÔ
µÄ
ÎÊÌâ.
ÏÖÔÚ¿¼ÂÇÔöÇ¿µÄ Directory ½Ó¿Ú:
[code]
public interface Directory extends Remote {
  String[] getNames();
  DirectoryEntry[] getEntries();
  DirectoryEntry getEntryByName(String name);
  void addEntry(DirectoryEntry entry);
  void removeEntry(DirectoryEntry entry);
}
[/code]
Õ⽫¼õÉÙ¶àÉÙÄãµÄ email ³ÌÐòËùÔì³ÉµÄ»¨·ÑÄØ? ÏÖÔÚÄã¿ÉÒÔµ÷ÓàDirectory.getNames
()
Ò»´Î¾Í¿ÉÒÔͬʱµÃµ½ËùÓеÄÃû×Ö, Ö»ÐèÒª¸øÄãÏëÒª·¢ËÍ email µÄÈÝÆ÷µ÷ÓàgetEntryBy
Namee() .
Õâ¸ö¹ý³ÌÐèÒª 3 ¸öÔ¶³Ì·½·¨µ÷ÓÃ, ¶ø²»ÊÇ N + 2, ºÍÁ½¸öÔ¶³Ì¶ÔÏó, ¶ø²»ÊÇ N + 1 ¸ö
.
Èç¹ûµØÖ·²¾ÓÐÔÙ¶àÒ»µãµÄÃû×Ö, Õâ¸öµ÷ÓõļõÉÙÔÚ³ÌÐòµÄÏìÓ¦ºÍÍøÂ縺ÔغÍϵͳ¸ºÔØÓÐ
ºÜ
´óµÄ²»Í¬.
ÓÃÀ´¼õÉÙÔ¶³Ìµ÷ÓúÍÒýÓô«µÝµÄ´ú¼ÛµÄ¼¼Êõ½Ð×öʹÓôÎÒª¶ÔÏó±êʶ·û. Ê¹ÓÃÒ»¸ö¶ÔÏóµÄ
±êʶ
ÊôÐÔ, -- ÔÚÕâ¸öÀý×ÓÖÐ, ÊÇ name -- ¶ø²»ÊÇ´«»ØÒ»¸öÔ¶³Ì¶ÔÏó, ×÷Ϊ¶ÔÏóµÄÒ»¸öÇáÁ¿
¼¶±ê±êʶ·û
´ÎÒª±êʶ·û°üº¬ÁËËüÃèÊöµÄ¶ÔÏó×ã¹»µÄÐÅÏ¢, ÕâÑùÄãÖ»ÐèÒª»ñÈ¡Äãʵ¼ÊÐèÒªµÄÔ¶³Ì¶ÔÏó
.
ÔÚÕâ¸öĿ¼ϵͳµÄÀý×ÓÖÐ, Ò»¸öÈ˵ÄÃû×ÖÊÇÒ»¸öºÃµÄ´ÎÒª±êʶ·û. ÔÚÁíÒ»¸öÀý×ÓÖÐ, Ò»
¸ö
°²È«Æ¤°ü¹ÜÀíϵͳ, Ò»¸ö²É¹º±êʶºÅ¿ÉÄÜÊÇÒ»¸öºÃµÄ´ÎÒª±êʶ·û.
ÁíÒ»¸ö¼õÉÙÔ¶³Ìµ÷ÓÃÊýÁ¿µÄ¼¼ÇÉÊÇ¿é»ñÈ¡. Äã¿ÉÒÔ½øÒ»²½¸ø Directory ½Ó¿Ú¼Ó¸ö·½·¨,
 À´Ò
´Î»ñÈ¡¶à¸öÐèÒªµÄ DirectoryEntry ¶ÔÏó:
[code]
public interface Directory extends Remote {
  String[] getNames();
  DirectoryEntry[] getEntries();
  DirectoryEntry getEntryByName(String name);
  DirectoryEntry[] getEntriesByName(String names[]);
  void addEntry(DirectoryEntry entry);
  void removeEntry(DirectoryEntry entry);
}
[/code]
ÏÖÔÚÄã²»½ö¿ÉÒԵõ½ÐèÒªµÄÔ¶³Ì DirectoryEntry , Ò²¿ÉÒÔÓõ¥¶ÀÒ»¸öÔ¶³Ì·½·¨µ÷ÓõÃ
µ½Ïë
ÒªµÄËùÓеÄÈë¿Ú. ËäÈ»Õâ²¢²»¼õÉٻ㼯µÄ´ú¼Û, µ«¼«´óµØ½ÏÉÙÁËÍøÂçÍù·µµÄ´ÎÊý. Èç¹û
ÍøÂç
ÑÓ³ÙºÜÖØÒªµÄ»°, ¾Í¿ÉÒÔ²úÉúÒ»¸öÏìÓ¦¸ü¿ìµÄϵͳ(Ò²ÄܼõÉÙÕâ¸öÍøÂçµÄʹÓÃ).
ÕÕÁÁÈ¥Ïò RMI ²ã´ÎµÄ·¾¶µÄµÚÈýµÄ¼¼ÇÉÊDz»°Ñ DirectoryEntry ×÷Ϊһ¸öÔ¶³Ì¶ÔÏó, ¶ø
°ÑË
¶¨ÒåΪһ¸öͨ³£µÄ¶ÔÏó, ´øÓзÃÎÊ name, address, email address ºÍÆäËûÓòµÄ·Ã
Îʺ¯Êý.
(ÔÚ CORBA ÏµÍ³ÖÐ, ÎÒ¿ÉÄÜҪʹÓÃÀàËƵĠobject-by-value »úÖÆ.) È»ºó, µ± email Ó¦
Óó
Ðòµ÷ÓàgetEntryName() Ê±, Ëü»á»ñÈ¡Ò»¸ö entry ¶ÔÏóµÄÖµ -- ²»ÐèÒª´´½¨Ò»¸ös
tub¶ÔÏó»
Õßskeleton¶ÔÏó, getEmailAddress() µÄµ÷ÓÃÒ²ÊÇÒ»¸ö±¾µØµÄµ÷Óöø²»ÊÇÒ»¸ö
Ô¶³ÌµÄ.
µ±È», ËùÓÐÕâЩ¼¼Çɶ¼¶¼ÒÀÀµÓÚ¶ÔÔ¶³Ì¶ÔÏóʵ¼ÊÉÏÊÇÔõÑùʹÓõÄÀí½âÉϵÄ, µ«ÊǶÔÓÚÕâ
¸ö
Àí½â, ÄãÉõÖÁ²»ÐèÒª¿´Ò»¿´Ô¶³ÌÀàµÄʵÏ־ͿÉÒÔÕÒ³öһЩDZÔÚµÄÑÏÖØÐÔÄÜÎÊÌâ.
[b][u]½áÂÛ[/u][/b]
·Ö²¼Ê½µÄÓ¦ÓóÌÐòµÄÐÔÄÜÌØÐÔ±¾ÖÊÉϺͱ¾µØ³ÌÐò²»Í¬. Ðí¶à¶ÔÓÚ±¾µØ³ÌÐò´ú¼ÛºÜСµÄ²Ù
×÷
¶ÔÓÚÔ¶³ÌÓ¦ÓóÌÐòÀ´Ëµ´ú¼Û·Ç³£¸ß, Éè¼Æ²»ºÃµÄÔ¶³Ì½Ó¿Úµ¼ÖÂÒ»¸ö³ÌÐòÓÐÑÏÖصÄÀ©Õ¹ÐÔ
ºÍÐÔ
ÄÜÎÊÌâ.
ÐÒÔ˵ÄÊÇ, ºÜÈÝÒ×ÔÚÉè¼Æʱºò, ÎªÄÇЩ¸ß´ú¼ÛµÄ²Ù×÷(ÏóÔ¶³Ìµ÷ÓúÍÔ¶³Ì¶ÔÏó´´½¨), Í¨
¹ý¼ì¼ì²éÍ
³£µÄÓÃÀýºÍ·ÖÎöËüÃÇ, È·¶¨ºÍ½â¾öÐí¶àͨ³£µÄ·Ö²¼Ê½µÄÐÔÄÜÎÊÌâ, ÕýȷʹÓÃ
ÕâÀïÌáµ½µÄ¼¼ÇÉ
´ÎÒªµÄ¶ÔÏó±êʶ·û, ¿é»ñÈ¡ºÍ return-by-value -- ¿ÉÒÔ±¾ÖÊÉÏÌá¸ßÓû§ÏìӦʱ¼äºÍÕû
¸öϵ
ͳµÄÍÌÍÂÁ¿.
About the author
Brian Goetz is a professional software developer with more than 15 years of
experience. He is a principal consultant at Quiotix, a software development
and consulting firm located in Los Altos, Calif.
--
°®µÄ·´ÃæÊÇʲô? ºÞÂð? ²»ÊÇ, Èç¹ûÒ»¸öÈ˺ÞÄãÒ»±²×Ó,
ÕâÒ²ºÜÄѵÃ, »òÐíËû(Ëý)¾ÍÊÇ°®ÁËÄãÒ»±²×Ó, ²»ÔøÍü¼Ç.
°®µÄ·´ÃæÊÇÀäÄ®. ¼ûÃæ¶øÈçͬİ·, °®Ò»¸öÈË, ²»»áÍü
ÄÜÎÊÌâ.
ÐÒÔ˵ÄÊÇ, ºÜÈÝÒ×ÔÚÉè¼Æʱºò, ÎªÄÇЩ¸ß´ú¼ÛµÄ²Ù×÷(ÏóÔ¶³Ìµ÷ÓúÍÔ¶³Ì¶ÔÏó´´½¨), Í¨
¹ý¼ì
³£µÄÓÃÀýºÍ·ÖÎöËüÃÇ, È·¶¨ºÍ½â¾öÐí¶àͨ³£µÄ·Ö²¼Ê½µÄÐÔÄÜÎÊÌâ, ÕýȷʹÓÃÕâÀïÌáµ½µÄ
¼¼ÇÉ
´ÎÒªµÄ¶ÔÏó±êʶ·û, ¿é»ñÈ¡ºÍ return-by-value -- ¿ÉÒÔ±¾ÖÊÉÏÌá¸ßÓû§ÏìӦʱ¼äºÍÕû
¸öϵ
ͳµÄÍÌÍÂÁ¿.
About the author
Brian Goetz is a professional software developer with more than 15 years of
experience. He is a principal consultant at Quiotix, a software development
and consulting firm located in Los Altos, Calif.
--
°®µÄ·´ÃæÊÇʲô? ºÞÂð? ²»ÊÇ, Èç¹ûÒ»¸öÈ˺ÞÄãÒ»±²×Ó,
ÕâÒ²ºÜÄѵÃ, »òÐíËû(Ëý)¾ÍÊÇ°®ÁËÄãÒ»±²×Ó, ²»ÔøÍü¼Ç.
°®µÄ·´ÃæÊÇÀäÄ®. ¼ûÃæ¶øÈçͬİ·, °®Ò»¸öÈË, ²»»áÍü
¼Ç, ÄÇÒ»·Ý¸Ð¾õ»áÓÀÔ¶´æÔÚ.
      SuperMMX.dhs.org ×ÔÓÉ SuperMMX
ÌÖÂÛ×ÔÓÉÈí¼þ, °üÀ¨ linux ºÍ java µÈ·½Ãæ.

--
¾Ý˵´ôÍÞ¶ù²»±¿

¡ù À´Ô´:¡¤¹þ¹¤´ó×϶¡Ïã bbs.hit.edu.cn¡¤[FROM: 202.118.245.178]
[°Ù±¦Ïä] [·µ»ØÊ×Ò³] [Éϼ¶Ä¿Â¼] [¸ùĿ¼] [·µ»Ø¶¥²¿] [Ë¢ÐÂ] [·µ»Ø]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
Ò³ÃæÖ´ÐÐʱ¼ä£º3.018ºÁÃë