ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
¸»Ê¿¿µÐ¡ËµÍø ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ101²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡



¡¡¡¡

1¡£¡¡ÉèÖÃ×¢²á±í¡¡¡¡

ÔÚÕâ¶ù£¬´ó¼Ò¿É¿´µ½¶Ô¾²Ì¬·½·¨Naming¡£bind£¨£©¡¡µÄÒ»¸öµ÷Óá£È»¶ø£¬Õâ¸öµ÷ÓÃÒªÇó×¢²á±í×÷Ϊ¼ÆËã»úÉϵÄÒ»¡¡

¸ö¶ÀÁ¢½ø³ÌÔËÐС£×¢²á±í·þÎñÆ÷µÄÃû×ÖÊÇ¡¡rmiregistry¡£ÔÚ32¡¡Î»Windows¡¡»·¾³ÖУ¬¿ÉʹÓ㺡¡¡¡

start¡¡rmiregistry¡¡¡¡

ÁîÆäÔÚºǫ́ÔËÐС£ÔÚUnix¡¡ÖУ¬Ê¹Ó㺡¡¡¡

rmiregistry¡¡&¡¡¡¡

ºÍÐí¶àÍøÂç³ÌÐòÒ»Ñù£¬rmiregistry¡¡Î»ÓÚ»úÆ÷Æô¶¯ËüËùÔÚµÄij¸ö¡¡IP¡¡µØÖ·´¦£¬µ«ËüÒ²±ØÐë¼àÊÓÒ»¸ö¶Ë¿Ú¡£Èç¹û¡¡

ÏóÉÏÃæÄÇÑùµ÷ÓÃrmiregistry£¬²»Ê¹ÓòÎÊý£¬×¢²á±íµÄ¶Ë¿Ú¾Í»áĬÈÏΪ¡¡1099¡£ÈôÏ£ÍûËüλÓÚÆäËûij¸ö¶Ë¿Ú£¬¡¡

Ö»ÐèÔÚÃüÁîÐÐÌí¼ÓÒ»¸ö²ÎÊý£¬Ö¸¶¨ÄǸö¶Ë¿Ú±àºÅ¼´¿É¡£¶ÔÕâ¸öÀý×ÓÀ´Ëµ£¬¶Ë¿Ú½«Î»ÓÚ¡¡2005£¬ËùÒÔ¡¡

rmiregistry¡¡Ó¦¸ÃÏóÏÂÃæÕâÑùÆô¶¯£¨¶ÔÓÚ32¡¡Î»Windows£©£º¡¡¡¡

start¡¡rmiregistry¡¡2005¡¡¡¡

¶ÔÓÚUnix¡¡£¬ÔòʹÓÃÏÂÊöÃüÁ¡¡¡¡

rmiregistry¡¡2005¡¡&¡¡¡¡

Óë¶Ë¿ÚÓйصÄÐÅÏ¢±ØÐë´«Ë͸øbind£¨£©ÃüÁͬʱ´«Ë͵Ļ¹ÓÐ×¢²á±íËùÔÚµÄÄÇ̨»úÆ÷µÄ¡¡IP¡¡µØÖ·¡£µ«¼ÙÈôÎÒÃÇ¡¡

ÏëÔÚ±¾µØ²âÊÔRMI¡¡³ÌÐò£¬¾ÍÏó±¾ÕµÄÍøÂç³ÌÐòÒ»Ö±²âÊÔµÄÄÇÑù£¬ÕâÑù×ö¾Í»á´øÀ´ÎÊÌâ¡£ÔÚ¡¡JDK¡¡1¡£1¡£1¡¡°æ±¾¡¡

ÖУ¬´æÔÚ×ÅÏÂÊöÁ½·½ÃæµÄÎÊÌ⣨עÊ͢ߣ©£º¡¡¡¡

£¨1£©¡¡localhost²»ÄÜËæ¡¡RMI¡¡¹¤×÷¡£ËùÒÔΪÁËÔÚµ¥¶Àһ̨»úÆ÷ÉÏÍê³É¶Ô¡¡RMI¡¡µÄ²âÊÔ£¬±ØÐëÌṩ»úÆ÷µÄÃû×Ö¡£Îª¡¡

ÁËÔÚ32¡¡Î»¡¡Windows¡¡»·¾³Öе÷²é×Ô¼º»úÆ÷µÄÃû×Ö£¬¿É½øÈë¿ØÖÆÃæ°å£¬Ñ¡Ôñ¡°ÍøÂ硱£¬Ñ¡Ôñ¡°±êʶ¡±¿¨Æ¬£¬ÆäÖС¡

ÁгöÁ˼ÆËã»úµÄÃû×Ö¡£¾ÍÎÒ×Ô¼ºµÄÇé¿öÀ´Ëµ£¬ÎҵĻúÆ÷½Ð×÷¡°Colossus¡¡¡±£¨ÒòΪÎÒÓü¸¸ö´óÈÝÁ¿µÄÓ²Å̱£´æ¡¡

¸÷ÖÖ²»Í¬µÄ¿ª·¢ÏµÍ³¡ª¡ªClossus¡¡ÊÇ¡°¾ÞÈË¡±µÄÒâ˼£©¡£Ëƺõ´óдÐÎʽ»á±»ºöÂÔ¡£¡¡¡¡

£¨2£©¡¡³ý·Ç¼ÆËã»úÓÐÒ»¸ö»î¶¯µÄTCP/IP¡¡Á¬½Ó£¬·ñÔò¡¡RMI¡¡²»Äܹ¤×÷£¬¼´Ê¹ËùÓÐ×é¼þ¶¼Ö»ÐèÒªÔÚ±¾µØ»úÆ÷ÀﻥÏàͨ¡¡

ÐÅ¡£ÕâÒâζ×ÅÔÚÊÔͼÔËÐгÌÐò֮ǰ£¬±ØÐëÁ¬½Óµ½×Ô¼ºµÄ¡¡ISP¡¡£¨ÒòÌØÍø·þÎñÌṩÕߣ©£¬·ñÔò»áµÃµ½Ò»Ð©º¬ÒåÄ£¡¡

ºýµÄÎ¥ÀýÏûÏ¢¡£¡¡¡¡

¡¡¡¡

¢ß£ºÎªÕÒ³öÕâЩÐÅÏ¢£¬ÎÒ²»ÖªËðÉËÁ˶àÉÙ¸öÄÔϸ°û¡£¡¡¡¡

¡¡¡¡

¿¼Âǵ½ÕâЩÒòËØ£¬bind£¨£©ÃüÁî±ä³ÉÁËÏÂÃæÕâ¸öÑù×Ó£º¡¡¡¡

Naming¡£bind£¨¡¨//colossus£º2005/PerfectTime¡¨£»¡¡pt£©£»¡¡¡¡

ÈôʹÓÃĬÈ϶˿ڡ¡1099£¬¾ÍûÓбØÒªÖ¸¶¨Ò»¸ö¶Ë¿Ú£¬ËùÒÔ¿ÉÒÔʹÓ㺡¡¡¡

Naming¡£bind£¨¡¨//colossus/PerfectTime¡¨£»¡¡pt£©£»¡¡¡¡

ÔÚJDK¡¡Î´À´µÄ°æ±¾ÖУ¨1¡£1Ö®ºó£©£¬Ò»µ©¸ÄÕýÁË¡¡localhost¡¡µÄÎÊÌ⣬¾ÍÄÜÕý³£µØ½øÐб¾µØ²âÊÔ£¬È¥µô¡¡IPµØ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡584¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡586¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

Ö·£¬Ö»Ê¹Óñêʶ·û£º¡¡¡¡

Naming¡£bind£¨¡¨PerfectTime¡¨£»¡¡pt£©£»¡¡¡¡

·þÎñÃûÊÇÈÎÒâµÄ£»ËüÔÚÕâÀïÕýºÃΪ¡¡PerfectTime£¬ºÍÀàÃûÒ»Ñù£¬µ«Äã¿ÉÒÔ¸ù¾ÝÇé¿öÈÎÒâÐ޸ġ£×îÖØÒªµÄÊÇÈ·¡¡

±£ËüÔÚ×¢²á±íÀïÊǸö¶ÀÒ»ÎÞ¶þµÄÃû×Ö£¬ÒÔ±ã¿Í»§Õý³£µØ»ñÈ¡Ô¶³Ì¶ÔÏó¡£ÈôÕâ¸öÃû×ÖÒÑÔÚ×¢²á±íÀïÁË£¬¾Í»áµÃ¡¡

µ½Ò»¸öAlreadyBoundException¡¡Î¥Àý¡£Îª·ÀÖ¹Õâ¸öÎÊÌ⣬¿É¿¼ÂǼá³ÖʹÓá¡rebind£¨£©¡¡£¬·ÅÆúbind£¨£©¡£ÕâÊÇÓÉÓÚ¡¡

rebind£¨£©ÒªÃ´»áÌí¼ÓÒ»¸öÐÂÌõÄ¿£¬ÒªÃ´½«Í¬ÃûµÄÌõÄ¿Ìæ»»µô¡£¡¡¡¡

¾¡¹Ümain£¨£©Í˳ö£¬ÎÒÃǵĶÔÏóÒѾ­´´½¨²¢×¢²á£¬ËùÒÔ»áÓÉ×¢²á±íÒ»Ö±±£³Ö»î¶¯×´Ì¬£¬µÈºò¿Í»§µ½´ï²¢·¢³ö¶Ô¡¡

ËüµÄÇëÇó¡£Ö»Òªrmiregistry¡¡´¦ÓÚÔËÐÐ״̬£¬¶øÇÒÎÒÃÇûÓÐΪÃû×Öµ÷Óá¡Naming¡£unbind£¨£©·½·¨£¬¶ÔÏó¾Í¿Ï¶¨¡¡

λÓÚÄǸöµØ·½¡£¿¼Âǵ½Õâ¸öÔ­Òò£¬ÔÚÎÒÃÇÉè¼Æ×Ô¼ºµÄ´úÂëʱ£¬ÐèÒªÏȹرա¡rmiregistry£¬²¢ÔÚ±àÒëÔ¶³Ì¶ÔÏó¡¡

µÄÒ»¸öа汾ʱÖØÐÂÆô¶¯Ëü¡£¡¡¡¡

²¢²»Ò»¶¨Òª½«rmiregistry¡¡×÷Ϊһ¸öÍⲿ½ø³ÌÆô¶¯¡£ÈôÊÂÇ°ÖªµÀ×Ô¼ºµÄÊÇÒªÇóÓÃÒÔ×¢²á±íµÄΨһһ¸öÓ¦Ó㬡¡

¾Í¿ÉÔÚ³ÌÐòÄÚ²¿Æô¶¯Ëü£¬Ê¹ÓÃÏÂÊö´úÂ룺¡¡¡¡

LocateRegistry¡£createRegistry£¨2005£©£»¡¡¡¡

ºÍÇ°ÃæÒ»Ñù£¬2005¡¡´ú±íÎÒÃÇÔÚÕâ¸öÀý×ÓÀïÑ¡ÓõĶ˿ںš£ÕâµÈ¼ÛÓÚÔÚÃüÁîÐÐÖ´ÐС¡rmiregistry¡¡2005¡£µ«ÔÚÉè¡¡

¼ÆRMI¡¡´úÂëʱ£¬ÕâÖÖ×ö·¨ÍùÍùÏԵøü¼Ó·½±ã£¬ÒòΪËüÈ¡ÏûÁËÆô¶¯ºÍÖÐÖ¹×¢²á±íËùÐèµÄ¶îÍâ²½Öè¡£Ò»µ©Ö´ÐÐÍê¡¡

Õâ¸ö´úÂ룬¾Í¿ÉÏóÒÔÇ°Ò»ÑùʹÓÃNaming¡¡½øÐС°°ó¶¨¡±¡ª¡ªbind£¨£©¡£¡¡¡¡



15¡£8¡£3¡¡´´½¨¸ùÓë¸É¡¡¡¡



Èô±àÒëºÍÔËÐÐPerfectTime¡£java£¬¼´Ê¹rmiregistry¡¡ÕýÈ·ÔËÐУ¬ËüÒ²ÎÞ·¨¹¤×÷¡£ÕâÊÇÓÉÓÚRMI¡¡µÄ¿ò¼ÜÉÐδ¾Í¡¡

λ¡£Ê×ÏȱØÐë´´½¨¸ùºÍ¸É£¬ÒÔ±ãÌṩÍøÂçÁ¬½Ó²Ù×÷£¬²¢Ê¹ÎÒÃǽ«Ô¶³Ì¶ÔÏóαװ³É×Ô¼º»úÆ÷ÄÚµÄij¸ö±¾µØ¶Ô¡¡

Ï󡣡¡¡¡

ËùÓÐÕâЩĻºóµÄ¹¤×÷¶¼ÊÇÏ൱¸´Ôӵġ£ÎÒÃÇ´ÓÔ¶³Ì¶ÔÏó´«Èë¡¢´«³öµÄÈκζÔÏ󶼱ØÐë¡°implement¡¡¡¡

Serializable¡±£¨Èç¹ûÏë´«µÝÔ¶³ÌÒýÓ㬶ø·ÇÕû¸ö¶ÔÏ󣬶ÔÏóµÄ²ÎÊý¾Í¿ÉÒÔ¡°implement¡¡Remote¡±£©¡£Òò´Ë¡¡

¿ÉÒÔÏëÏ󣬵±¸ùºÍ¸Éͨ¹ýÍøÂç¡°»ã¼¯¡±ËùÓвÎÊý²¢·µ»Ø½á¹ûµÄʱºò£¬»á×Ô¶¯½øÐÐÐòÁл¯ÒÔ¼°Êý¾ÝµÄÖØÐÂ×°¡¡

Åä¡£ÐÒÔ˵ÄÊÇ£¬ÎÒÃǸù±¾Ã»±ØÒªÁ˽âÕâЩ·½ÃæµÄÈκÎϸ½Ú£¬µ«¸ùºÍ¸ÉÈ´ÊDZØÐë´´½¨µÄ¡£Ò»¸ö¼òµ¥µÄ¹ý³ÌÈç¡¡

Ï£ºÔÚ±àÒëºÃµÄ´úÂëÖе÷ÓÃrmic£¬Ëü»á´´½¨±ØÐèµÄһЩÎļþ¡£ËùÒÔΨһҪ×öµÄÊÂÇé¾ÍÊÇΪ±àÒë¹ý³ÌÐÂÌíÒ»¸ö¡¡

²½Öè¡£¡¡¡¡

È»¶ø£¬rmic¡¡¹¤¾ßÓëÌض¨µÄ°üºÍÀà·¾¶ÓкܴóµÄ¹ØÁª¡£PerfectTime¡£java¡¡Î»ÓÚ°ü¡¡c15¡£Ptime¡¡ÖУ¬¼´Ê¹ÎÒÃǵ÷Óá¡

ÓëPerfectTime¡£class¡¡Í¬Ò»Ä¿Â¼ÄÚµÄrmic£¬rmic¡¡¶¼ÎÞ·¨ÕÒµ½Îļþ¡£ÕâÊÇÓÉÓÚËüËÑË÷µÄÊÇÀà·¾¶¡£Òò´Ë£¬ÎÒÃÇ¡¡

±ØÐëͬʱָ¶¨Àà·¾¶£¬¾ÍÏóÏÂÃæÕâÑù£º¡¡¡¡

rmic¡¡c15¡£PTime¡£PerfectTime¡¡¡¡

Ö´ÐÐÕâ¸öÃüÁîʱ£¬²¢²»Ò»¶¨·ÇÒªÔÚ°üº¬ÁË¡¡PerfectTime¡£class¡¡µÄĿ¼ÖУ¬µ«½á¹û»áÖÃÓÚµ±Ç°Ä¿Â¼¡£¡¡¡¡

Èôrmic¡¡³É¹¦ÔËÐУ¬Ä¿Â¼Àï¾Í»á¶à³öÁ½¸öÐÂÀࣺ¡¡¡¡

PerfectTime_Stub¡£class¡¡¡¡

PerfectTime_Skel¡£class¡¡¡¡

ËüÃÇ·Ö±ð¶ÔÓ¦¸ù£¨Stub¡¡£©ºÍ¸É£¨Skeleton¡¡£©¡£ÏÖÔÚ£¬ÎÒÃÇÒÑ×¼±¸ºÃÈ÷þÎñÆ÷Óë¿Í»§»¥Ï๵ͨÁË¡£¡¡¡¡



15¡£8¡£4¡¡Ê¹ÓÃÔ¶³Ì¶ÔÏó¡¡¡¡



RMI¡¡È«²¿µÄ×ÚÖ¼¾ÍÊǾ¡¿ÉÄܼò»¯Ô¶³Ì¶ÔÏóµÄʹÓá£ÎÒÃÇÔÚ¿Í»§³ÌÐòÖÐÒª×öµÄΨһһ¼þ¶îÍâµÄÊÂÇé¾ÍÊDzéÕÒ²¢¡¡

´Ó·þÎñÆ÷È¡»ØÔ¶³Ì½Ó¿Ú¡£×Ô´ËÒÔºó£¬Ê£ÏµÄÊÂÇé¾ÍÊÇÆÕͨµÄJava¡¡±à³Ì£º½«ÏûÏ¢·¢¸ø¶ÔÏó¡£ÏÂÃæÊÇʹÓá¡

PerfectTime¡¡µÄ³ÌÐò£º¡¡¡¡

¡¡¡¡

//£º¡¡DisplayPerfectTime¡£java¡¡¡¡

//¡¡Uses¡¡remote¡¡object¡¡PerfectTime¡¡¡¡

package¡¡c15¡£ptime£»¡¡¡¡

import¡¡java¡£rmi¡£*£»¡¡¡¡

import¡¡java¡£rmi¡£registry¡£*£»¡¡¡¡

¡¡¡¡

public¡¡class¡¡DisplayPerfectTime¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡System¡£setSecurityManager£¨¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡585¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡587¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡new¡¡RMISecur¡¡ityManager£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡PerfectTimeI¡¡t¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨PerfectTimeI£©Naming¡£lookup£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨//colossus£º2005/PerfectTime¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡10£»¡¡i£«£«£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Perfect¡¡time¡¡=¡¡¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡t¡£getPerfectTime£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨Exception¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

ID×Ö´®ÓëÄǸöÓá¡Naming¡¡×¢²á¶ÔÏóµÄÄǸö×Ö´®ÊÇÏàͬµÄ£¬µÚÒ»²¿·ÖÖ¸³öÁË¡¡URL¡¡ºÍ¶Ë¿ÚºÅ¡£ÓÉÓÚÎÒÃÇ×¼±¸Ê¹Óá¡

Ò»¸öURL£¬ËùÒÔÒ²¿ÉÒÔÖ¸¶¨ÒòÌØÍøÉϵÄһ̨»úÆ÷¡£¡¡¡¡

´ÓNaming¡£lookup£¨£©·µ»ØµÄ±ØÐëÔìÐ͵½Ô¶³Ì½Ó¿Ú£¬¶ø²»Êǵ½Àà¡£Èô»»ÓÃÀ࣬»áµÃµ½Ò»¸öÎ¥ÀýÌáʾ¡£¡¡¡¡

ÔÚÏÂÊö·½·¨µ÷ÓÃÖУº¡¡¡¡

t¡£getPerfectTime£¨¡¡£©¡¡¡¡

ÎÒÃÇ¿É¿´µ½Ò»µ©»ñµÃÔ¶³Ì¶ÔÏóµÄ¾ä±ú£¬ÓÃËü½øÐеıà³ÌÓëÓñ¾µØ¶ÔÏóµÄ±à³ÌÊǷdz£ÏàËÆ£¨½öÓÐÒ»¸öÇø±ð£ºÔ¶¡¡

³Ì·½·¨»á¡°ÖÀ¡±³öÒ»¸ö¡¡RemoteException¡¡Î¥Àý£©¡£¡¡¡¡



15¡£8¡£5¡¡RMI¡¡µÄÌæÑ¡·½°¸¡¡¡¡



RMI¡¡Ö»ÊÇÒ»ÖÖ´´½¨ÌØÊâ¶ÔÏóµÄ·½Ê½£¬Ëü´´½¨µÄ¶ÔÏó¿Éͨ¹ýÍøÂç·¢²¼¡£Ëü×î´óµÄÓŵã¾ÍÊÇÌṩÁËÒ»ÖÖ¡°´¿¡¡

Java¡¡¡±·½°¸£¬µ«¼ÙÈçÒѾ­ÓÐÐí¶àÓÃÆäËûÓïÑÔ±àдµÄ´úÂ룬ÔòRMI¡¡¿ÉÄÜÎÞ·¨Âú×ãÎÒÃǵÄÒªÇó¡£Ä¿Ç°£¬Á½ÖÖ×î¾ß¡¡

¾ºÕùÁ¦µÄÌæÑ¡·½°¸ÊÇ΢ÈíµÄD¡¡£¨¸ù¾Ý΢ÈíµÄ¼Æ»®£¬Ëü×îÖÕ»áÒÆÖ²µ½³ýWindows¡¡ÒÔÍâµÄÆäËûƽ̨£©ÒÔ¼°¡¡

CORBA¡£CORBA¡¡×ÔJava¡¡1¡£1¡¡±ã¿ªÊ¼Ö§³Ö£¬ÊÇÒ»ÖÖÈ«ÐÂÉè¼ÆµÄ¸ÅÄÃæÏò¿çƽ̨ӦÓá£ÔÚÓÉ¡¡Orfali¡¡ºÍ¡¡Harkey¡¡

±àÖøµÄ¡¶Client/Server¡¡Programming¡¡with¡¡Java¡¡and¡¡CORBA¡·Ò»ÊéÖУ¨John¡¡Wiley&Sons¡¡1997¡¡Äê³ö°æ£©£¬¡¡

´ó¼Ò¿É»ñµÃ¶ÔJava¡¡Öеķֲ¼Ê½¶ÔÏóµÄÈ«Ãæ½éÉÜ£¨¸ÃÊéËƺõ¶Ô¡¡CORBA¡¡ËƺõÓÐЩƫ¼û£©¡£ÎªCORBA¡¡¸³ÓèÒ»¸ö½Ï¹«¡¡

ÕýµÄ¶Ô´ýµÄÒ»±¾ÊéÊÇÓÉ¡¡Andreas¡¡Vogel¡¡ºÍKeith¡¡Duddy¡¡±àдµÄ¡¶Java¡¡Programming¡¡with¡¡CORBA¡·£¬John¡¡¡¡

Wiley&Sons¡¡ÓÚ¡¡1997¡¡Äê³ö°æ¡£¡¡¡¡



15¡£9¡¡×ܽᡡ¡¡



ÓÉÓÚƪ·ùËùÏÞ£¬»¹ÓÐÆäËûÐí¶àÉæ¼°Á¬ÍøµÄ¸ÅÄîûÓнéÉܸø´ó¼Ò¡£Java¡¡Ò²Îª¡¡URL¡¡ÌṩÁËÏ൱ȫÃæµÄÖ§³Ö£¬°üÀ¨¡¡

ΪÒòÌØÍøÉϲ»Í¬ÀàÐ͵Ŀͻ§ÌṩЭÒé¿ØÖÆÆ÷µÈµÈ¡£¡¡¡¡

³ý´ËÒÔÍ⣬һÖÖÕýÔÚÖð²½Á÷Ðеļ¼Êõ½Ð×÷Servlet¡¡Server¡£ËüÊÇÒ»ÖÖÒòÌØÍø·þÎñÆ÷Ó¦Óã¬Í¨¹ýJava¡¡¿ØÖÆ¿Í¡¡

»§ÇëÇ󣬶ø·ÇʹÓÃÒÔÇ°ÄÇÖÖËٶȺÜÂý¡¢ÇÒÏ൱Âé·³µÄCGI¡¡£¨Í¨ÓÃÍø¹Ø½Ó¿Ú£©Ð­Òé¡£ÕâÒâζ×ÅΪÁËÔÚ·þÎñÆ÷ÄÇ¡¡

Ò»¶ËÌṩ·þÎñ£¬ÎÒÃÇ¿ÉÒÔÓÃJava¡¡±à³Ì£¬²»±ØʹÓÃ×Ô¼º²»ÊìϤµÄÆäËûÓïÑÔ¡£ÓÉÓÚ¡¡Java¡¡¾ßÓÐÓÅÐãµÄÒÆÖ²ÄÜÁ¦£¬¡¡

ËùÒÔ²»±Ø¹ØÐľßÌåÈÝÄÉÕâ¸ö·þÎñÆ÷ÊÇʲôƽ̨¡£¡¡¡¡

ËùÓÐÕâЩÒÔ¼°ÆäËûÌØÐÔ¶¼ÔÚ¡¶Java¡¡Network¡¡Progr¡¡amming¡·Ò»ÊéÖеõ½ÁËÏêϸ½²Êö¡£¸ÃÊéÓÉ¡¡Elliotte¡¡Rusty¡¡¡¡

Harold¡¡±àÖø£¬O'Reilly¡¡ÓÚ¡¡1997¡¡Äê³ö°æ¡£¡¡¡¡



15¡£10¡¡Á·Ï°¡¡¡¡



£¨1£©¡¡±àÒëºÍÔËÐб¾ÕÂÖеÄJabberServer¡¡ºÍ¡¡JabberClient¡¡³ÌÐò¡£½Ó×ű༭һϳÌÐò£¬É¾È¥ÎªÊäÈëºÍÊä³öÉè¼Æ¡¡

µÄËùÓлº³å»úÖÆ£¬È»ºóÔٴαàÒëºÍÔËÐУ¬¹Û²ìһϽá¹û¡£¡¡¡¡

£¨2£©¡¡´´½¨Ò»¸ö·þÎñÆ÷£¬ÓÃËüÇëÇóÓû§ÊäÈëÃÜÂ룬Ȼºó´ò¿ªÒ»¸öÎļþ£¬²¢½«Îļþͨ¹ýÍøÂçÁ¬½Ó´«ËͳöÈ¥¡£´´½¨¡¡

Ò»¸öͬ¸Ã·þÎñÆ÷Á¬½ÓµÄ¿Í»§£¬ÎªÆä·ÖÅäÊʵ±µÄÃÜÂ룬Ȼºó²¶»ñºÍ±£´æÎļþ¡£ÔÚ×Ô¼ºµÄ»úÆ÷ÉÏÓá¡localhost¡¡

¡¡£¨Í¨¹ýµ÷ÓÃInetAddress¡£getByName£¨null£©Éú³É±¾µØ¡¡IPµØÖ·¡¡127¡£0¡£0¡£1£©²âÊÔÕâÁ½¸ö³ÌÐò¡£¡¡¡¡

£¨3£©¡¡ÐÞ¸ÄÁ·Ï°2¡¡ÖеijÌÐò£¬ÁîÆäÓöàÏ̻߳úÖƶԶà¸ö¿Í»§½øÐпØÖÆ¡£¡¡¡¡

£¨4£©¡¡ÐÞ¸ÄJabberClient£¬½ûÖ¹Êä³öˢУ¬²¢¹Û²ì½á¹û¡£¡¡¡¡

£¨5£©¡¡ÒÔShowHTML¡£java¡¡Îª»ù´¡£¬´´½¨Ò»¸ö³ÌÐòƬ£¬ÁîÆä³ÉΪ¶Ô×Ô¼ºWeb¡¡Õ¾µãµÄÌض¨²¿·Ö½øÐÐÃÜÂë±£»¤µÄ´ó¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡586¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡588¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÃÅ¡£¡¡¡¡

£¨6£©¡¡¡¡£¨¿ÉÄÜÓÐЩÄѶȣ©´´½¨Ò»¶Ô¿Í»§£¯·þÎñÆ÷³ÌÐò£¬ÀûÓÃÊý¾Ý±¨£¨Datagram¡¡£©½«Ò»¸öÎļþ´Óһ̨»úÆ÷´«µ½Áí¡¡

һ̨£¨²Î¼û±¾ÕÂÊý¾Ý±¨Ð¡½ÚĩβµÄÐðÊö£©¡£¡¡¡¡

£¨7£©¡¡¡¡£¨¿ÉÄÜÓÐЩÄѶȣ©¶ÔVLookup¡£java¡¡³ÌÐò×÷Ò»·¬Ð޸ģ¬Ê¹ÎÒÃÇÄܵã»÷µÃµ½µÄ½á¹ûÃû×Ö£¬È»ºó³ÌÐò»á×Ô¶¯È¡¡¡

µÃÄǸöÃû×Ö£¬²¢°ÑËü¸´ÖƵ½¼ôÌù°å£¨ÒÔ±ãÎÒÃÇ·½±ãµØÕ³Ìùµ½×Ô¼ºµÄE¡­mail¡¡£©¡£¿ÉÄÜÒª»Ø¹ýÍ·È¥Ñо¿Ò»ÏÂIO¡¡

Êý¾ÝÁ÷µÄÄÇÒ»Õ£¬»ØÒä¸ÃÈçºÎʹÓá¡Java¡¡1¡£1¡¡¼ôÌù°å¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡587¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡589¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚ¡¡16¡¡Õ¡¡¡¡Éè¼Æ·¶Ê½¡¡¡¡



¡¡¡¡

±¾ÕÂÒªÏò´ó¼Ò½éÉÜÖØÒªµ«È´²¢²»ÊÇÄÇô´«Í³µÄ¡°·¶Ê½¡±£¨Pattern£©³ÌÐòÉè¼Æ·½·¨¡£¡¡¡¡

ÔÚÏòÃæÏò¶ÔÏó³ÌÐòÉè¼ÆµÄÑÝ»¯¹ý³ÌÖУ¬»òÐí×îÖØÒªµÄÒ»²½¾ÍÊÇ¡°Éè¼Æ·¶Ê½¡±£¨Design¡¡Pattern£©µÄÎÊÊÀ¡£Ëü¡¡

ÔÚÓÉGamma£¬Helm¡¡ºÍ¡¡Johnson¡¡±àÖøµÄ¡¶Design¡¡Patterns¡·Ò»ÊéÖỶ¨Òå³ÉÒ»¸ö¡°Àï³Ì±®¡±£¨¸ÃÊéÓÉ¡¡

Addison¡­Wesley¡¡ÓÚ¡¡1995¡¡Äê³ö°æ£¬×¢ÊÍ¢Ù£©¡£ÄDZ¾ÊéÁгöÁ˽â¾öÕâ¸öÎÊÌâµÄ¡¡23¡¡ÖÖ²»Í¬µÄ·½·¨¡£ÔÚ±¾ÕÂÖУ¬ÎÒ¡¡

ÃÇ×¼±¸°éË漸¸öÀý×Ó½Òʾ³öÉè¼Æ·¶Ê½µÄ»ù±¾¸ÅÄî¡£Õâ»òÐíÄܼ¤ÆðÄúÔĶÁ¡¶Design¡¡Pattern¡·Ò»ÊéµÄÓûÍû¡£Ê¡¡

ʵÉÏ£¬ÄDZ¾ÊéÏÖÔÚÒѳÉΪ¼¸ºõËùÓС¡OOP¡¡³ÌÐòÔ±¶¼±Ø±¸µÄ²Î¿¼Êé¡£¡¡¡¡

¡¡¡¡

¢Ù£ºµ«¾¯¸æ´ó¼Ò£ºÊéÖеÄÀý×ÓÊÇÓá¡C£«£«Ð´µÄ¡£¡¡¡¡

¡¡¡¡

±¾ÕµĺóÒ»²¿·Ö°üº¬ÁËչʾÉè¼Æ½ø»¯¹ý³ÌµÄÒ»¸öÀý×Ó£¬Ê×ÏÈÊDZȽÏԭʼµÄ·½°¸£¬¾­¹ýÖð½¥·¢Õ¹ºÍ¸Ä½ø£¬ÂýÂý¡¡

³ÉΪ¸ü·ûºÏÂß¼­¡¢¸üΪǡµ±µÄÉè¼Æ¡£¸Ã³ÌÐò£¨·ÂÕæÀ¬»ø·ÖÀࣩһֱ¶¼ÔÚ½ø»¯£¬¿É½«ÕâÖÖ½ø»¯×÷Ϊ×Ô¼ºÉè¼Æ·½¡¡

°¸µÄÒ»¸öÔ­ÐÍ¡ª¡ªÏÈΪÌض¨µÄÎÊÌâÌá³öÒ»¸öÊʵ±µÄ·½°¸£¬ÔÙÖ𲽸ÄÉÆ£¬Ê¹Æä³ÉΪ½â¾öÄÇÀàÎÊÌâÒ»ÖÖ×îÁé»îµÄ¡¡



·½°¸¡£16¡£1¡¡·¶Ê½µÄ¸ÅÄî¡¡¡¡

ÔÚ×ʼ£¬¿É½«·¶Ê½ÏëÏó³ÉÒ»ÖÖÌرð´ÏÃ÷¡¢Äܹ»×ÔÎÒÊÊÓ¦µÄÊÖ·¨£¬Ëü¿ÉÒÔ½â¾öÌض¨ÀàÐ͵ÄÎÊÌâ¡£Ò²¾ÍÊÇ˵£¬¡¡

ËüÀàËÆһЩÐèҪȫÃæÈÏʶij¸öÎÊÌâµÄÈË¡£ÔÚÁ˽âÁËÎÊÌâµÄ·½·½ÃæÃæÒÔºó£¬×îºóÌá³öÒ»Ì××îͨÓá¢×îÁé»îµÄ½â¡¡

¾ö·½°¸¡£¾ßÌåÎÊÌâ»òÐíÊÇÒÔÇ°¼ûµ½²¢½â¾ö¹ýµÄ¡£È»¶ø£¬´ÓÇ°µÄ·½°¸Ò²Ðí²¢²»ÊÇ×îÍêÉƵģ¬´ó¼Ò»á¿´µ½ËüÈçºÎ¡¡

ÔÚÒ»¸ö·¶Ê½Àï¾ßÌå±í´ï³öÀ´¡£¡¡¡¡

¾¡¹ÜÎÒÃdzÆ֮Ϊ¡°Éè¼Æ·¶Ê½¡±£¬µ«ËüÃÇʵ¼ÊÉϲ¢²»¾ÖÏÞÓÚÉè¼ÆÁìÓò¡£Ë¼¿¼¡°·¶Ê½¡±Ê±£¬Ó¦ÍÑÀ봫ͳÒâÒåÉÏ·Ö¡¡

Îö¡¢Éè¼ÆÒÔ¼°ÊµÊ©µÄ˼¿¼·½Ê½¡£Ïà·´£¬¡°·¶Ê½¡±ÊÇÔÚÒ»¸ö³ÌÐòÀï¾ßÌå±í´ïÒ»Ì×ÍêÕûµÄ˼Ï룬ËùÒÔËüÓÐʱ¿ÉÄÜ¡¡

³öÏÖÔÚ·ÖÎö½×¶Î»òÕ߸߼¶Éè¼Æ½×¶Î¡£ÕâÒ»µãÊǷdz£ÓÐȤµÄ£¬ÒòΪ·¶Ê½¾ßÓÐÒÔ´úÂëÐÎʽֱ½ÓʵÏÖµÄÐÎʽ£¬ËùÒÔ¡¡

¿ÉÄܲ»Ï£ÍûËüÔڵͼ¶Éè¼Æ»òÕß¾ßÌåʵʩÒÔÇ°ÏÔ¶³öÀ´£¨¶øÇÒÊÂʵÉÏ£¬³ý·ÇÕæÕý½øÈëÄÇЩ½×¶Î£¬·ñÔòÒ»°ãÒâʶ¡¡

²»µ½×Ô¼ºÐèÒªÒ»¸ö·¶Ê½À´½â¾öÎÊÌ⣩¡£¡¡¡¡

·¶Ê½µÄ»ù±¾¸ÅÄîÒà¿É¿´³ÉÊdzÌÐòÉè¼ÆµÄ»ù±¾¸ÅÄÌí¼ÓÒ»²ãеijéÏó£¡Ö»ÒªÎÒÃdzéÏóÁËijЩ¶«Î÷£¬¾ÍÏ൱ÓÚ¡¡

¸ôÀëÁËÌض¨µÄϸ½Ú¡£¶øÇÒÕâºóÃæ×îÒýÈËעĿµÄ¶¯»ú¾ÍÊÇ¡°½«±£³Ö²»±äµÄ¶«Î÷ÉíÉÏ·¢ÉúµÄ±ä»¯¹ÂÁ¢³öÀ´¡±¡£Õâ¡¡

Ñù×öµÄÁíÒ»¸öÔ­ÒòÊÇÒ»µ©·¢ÏÖ³ÌÐòµÄij²¿·ÖÓÉÓÚÕâÑù»òÄÇÑùµÄÔ­Òò¿ÉÄÜ·¢Éú±ä»¯£¬ÎÒÃÇÒ»°ã¶¼Ïë·ÀÖ¹ÄÇЩ¸Ä¡¡

±äÔÚ´úÂëÄÚ²¿·±ÑܳöÆäËû±ä»¯¡£ÕâÑù×ö²»½ö¿ÉÒÔ½µµÍ´úÂëµÄά»¤´ú¼Û£¬Ò²¸ü±ãÓÚÎÒÃÇÀí½â£¨½á¹ûͬÑùÊǽµµÍ¡¡

¿ªÏú£©¡£¡¡¡¡

ΪÉè¼Æ³ö¹¦ÄÜÇ¿´óÇÒÒ×ÓÚά»¤µÄÓ¦ÓÃÏîÄ¿£¬Í¨³£×îÀ§ÄѵIJ¿·Ö¾ÍÊÇÕÒ³öÎÒ³Æ֮Ϊ¡°ÁìÍ·±ä»¯¡±µÄ¶«Î÷¡£ÕâÒâ¡¡

ζ×ÅÐèÒªÕÒ³öÔì³Éϵͳ¸Ä±äµÄ×îÖØÒªµÄ¶«Î÷£¬»òÕß»»Ò»¸ö½Ç¶È£¬ÕÒ³ö¸¶³ö´ú¼Û×î¸ß¡¢¿ªÏú×î´óµÄÄÇÒ»²¿·Ö¡£¡¡

Ò»µ©·¢ÏÖÁË¡°ÁìÍ·±ä»¯¡±£¬¾Í¿ÉÒÔΪ×Ô¼º¶¨ÏÂÒ»¸ö½¹µã£¬Î§ÈÆËüÕ¹¿ª×Ô¼ºµÄÉè¼Æ¡£¡¡¡¡

ËùÒÔÉè¼Æ·¶Ê½µÄ×îÖÕÄ¿±ê¾ÍÊǽ«´úÂëÖб仯µÄÄÚÈݸôÀ뿪¡£Èç¹û´ÓÕâ¸ö½Ç¶È¹Û²ì£¬¾Í»á·¢ÏÖ±¾Êéʵ¼ÊÒѲÉÓá¡

ÁËһЩÉè¼Æ·¶Ê½¡£¾Ù¸öÀý×ÓÀ´Ëµ£¬¼Ì³Ð¿ÉÒÔÏëÏó³ÉÒ»ÖÖÉè¼Æ·¶Ê½£¨ÀàËÆÒ»¸öÓɱàÒëÆ÷ʵÏֵģ©¡£ÔÚ¶¼ÓµÓÐͬ¡¡

Ñù½Ó¿Ú£¨¼´±£³Ö²»±äµÄ¶«Î÷£©µÄ¶ÔÏóÄÚ²¿£¬ËüÔÊÐíÎÒÃDZí´ïÐÐΪÉϵIJîÒ죨¼´·¢Éú±ä»¯µÄ¶«Î÷£©¡£ºÏ³ÉÒà¿É¡¡

ÏëÏó³ÉÒ»ÖÖ·¶Ê½£¬ÒòΪËüÔÊÐíÎÒÃÇÐ޸ġª¡ª¶¯Ì¬»ò¾²Ì¬¡ª¡ªÓÃÓÚʵÏÖÀàµÄ¶ÔÏó£¬ËùÒÔÒ²ÄÜÐÞ¸ÄÀàµÄÔË×÷·½¡¡

ʽ¡£¡¡¡¡

ÔÚ¡¶Design¡¡Patterns¡·Ò»ÊéÖУ¬´ó¼Ò»¹ÄÜ¿´µ½ÁíÒ»ÖÖ·¶Ê½£º¡°¼Ì³ÐÆ÷¡±£¨¼´Iterator£¬Java¡¡1¡£0¡¡ºÍ¡¡1¡£1¡¡²»¡¡

¸ºÔðÈεذÑËü½Ð×÷Enumeration£¬¼´¡°Ã¶¾Ù¡±£»Java1¡£2¡¡µÄ¼¯ºÏÔò¸Ä»ØÁË¡°¼Ì³ÐÆ÷¡±µÄ³Æºô£©¡£µ±ÎÒÃÇÔÚ¼¯ºÏ¡¡

Àï±éÀú£¬Öð¸öÑ¡Ôñ²»Í¬µÄÔªËØʱ£¬¼Ì³ÐÆ÷¿É½«¼¯ºÏµÄʵʩϸ½ÚÓÐЧµØÒþ²ØÆðÀ´¡£ÀûÓü̳ÐÆ÷£¬¿ÉÒÔ±àд³öͨ¡¡

ÓõĴúÂ룬ÒÔ±ã¶ÔÒ»¸öÐòÁÐÀïµÄËùÓÐÔªËزÉȡijÖÖ²Ù×÷£¬Í¬Ê±²»±Ø¹ØÐÄÕâ¸öÐòÁÐÊÇÈçºÎ¹¹½¨µÄ¡£ÕâÑùÒ»À´£¬¡¡

ÎÒÃǵÄͨÓôúÂë¼´¿É°éËæÈκÎÄܲúÉú¼Ì³ÐÆ÷µÄ¼¯ºÏʹÓᣡ¡¡¡



16¡£1¡£1¡¡µ¥×Ó¡¡¡¡



»òÐí×î¼òµ¥µÄÉè¼Æ·¶Ê½¾ÍÊÇ¡°µ¥×Ó¡±£¨Singleton£©£¬ËüÄÜÌṩ¶ÔÏóµÄÒ»¸ö£¨¶øÇÒÖ»ÓÐÒ»¸ö£©ÊµÀý¡£µ¥×ÓÔÚ¡¡

Java¡¡¿âÖеõ½ÁËÓ¦Ó㬵«ÏÂÃæÕâ¸öÀý×ÓÏԵøüÖ±½ÓһЩ£º¡¡¡¡

¡¡¡¡

//£º¡¡SingletonPattern¡£java¡¡¡¡

//¡¡The¡¡Singleton¡¡design¡¡pattern£º¡¡you¡¡can¡¡¡¡

//¡¡never¡¡instantiate¡¡more¡¡than¡¡one¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡588¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡590¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

package¡¡c16£»¡¡¡¡

¡¡¡¡

//¡¡Since¡¡this¡¡isn't¡¡inherited¡¡from¡¡a¡¡Cloneable¡¡¡¡

//¡¡base¡¡class¡¡and¡¡cloneability¡¡isn't¡¡added£»¡¡¡¡

//¡¡making¡¡it¡¡final¡¡prevents¡¡cloneability¡¡from¡¡¡¡

//¡¡being¡¡added¡¡in¡¡any¡¡derived¡¡classes£º¡¡¡¡

final¡¡class¡¡Singleton¡¡£û¡¡¡¡

¡¡¡¡private¡¡static¡¡Singleton¡¡s¡¡=¡¡new¡¡Singleton£¨47£©£»¡¡¡¡

¡¡¡¡private¡¡int¡¡i£»¡¡¡¡

¡¡¡¡private¡¡Singleton£¨int¡¡x£©¡¡£û¡¡i¡¡=¡¡x£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡Singleton¡¡getHandle£¨£©¡¡£û¡¡¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡s£»¡¡¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡int¡¡getValue£¨£©¡¡£û¡¡return¡¡i£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡setValue£¨int¡¡x£©¡¡£û¡¡i¡¡=¡¡x£»¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡SingletonPattern¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Singleton¡¡s¡¡=¡¡Singleton¡£getHandle£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨s¡£getValue£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡Singleton¡¡s2¡¡=¡¡Singleton¡£getHandle£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡s2¡£setValue£¨9£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨s¡£getValue£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Can't¡¡do¡¡this£º¡¡pile¡­time¡¡error¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Singleton¡¡s3¡¡=¡¡£¨Singleton£©s2¡£clone£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨Exception¡¡e£©¡¡£û£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

´´½¨µ¥×ӵĹؼü¾ÍÊÇ·ÀÖ¹¿Í»§³ÌÐòÔ±²ÉÓóýÓÉÎÒÃÇÌṩµÄÖ®ÍâµÄÈκÎÒ»ÖÖ·½Ê½À´´´½¨Ò»¸ö¶ÔÏó¡£±ØÐ뽫ËùÓС¡

¹¹½¨Æ÷¶¼ÉèΪprivate¡¡£¨Ë½ÓУ©£¬¶øÇÒÖÁÉÙÒª´´½¨Ò»¸ö¹¹½¨Æ÷£¬ÒÔ·ÀÖ¹±àÒëÆ÷°ïÎÒÃÇ×Ô¶¯Í¬²½Ò»¸öĬÈϹ¹½¨¡¡

Æ÷£¨Ëü»á×Ô×ö´ÏÃ÷µØ´´½¨³ÉΪ¡°ÓѺõġ±¡ª¡ªfriendly£¬¶ø·Ç¡¡private£©¡£¡¡¡¡

´ËʱӦ¾ö¶¨ÈçºÎ´´½¨×Ô¼ºµÄ¶ÔÏó¡£ÔÚÕâ¶ù£¬ÎÒÃÇÑ¡ÔñÁ˾²Ì¬´´½¨µÄ·½Ê½¡£µ«Òà¿ÉÑ¡ÔñµÈºò¿Í»§³ÌÐòÔ±·¢³öÒ»¡¡

¸ö´´½¨ÇëÇó£¬È»ºó¸ù¾ÝËûÃǵÄÒªÇó¶¯Ì¬´´½¨¡£²»¹ÜÔÚÄÄÖÖÇé¿öÏ£¬¶ÔÏó¶¼Ó¦¸Ã±£´æΪ¡°Ë½ÓС±ÊôÐÔ¡£ÎÒÃÇͨ¡¡

¹ý¹«Ó÷½·¨Ìṩ·ÃÎÊ;¾¶¡£ÔÚÕâÀgetHandle£¨£©»á²úÉúÖ¸Ïò¡¡Singleton¡¡µÄÒ»¸ö¾ä±ú¡£Ê£ÏµĽӿڡ¡

¡¡£¨getValue£¨£©ºÍ¡¡setValue£¨£©£©ÊôÓÚÆÕͨµÄÀà½Ó¿Ú¡£¡¡¡¡

Java¡¡Ò²ÔÊÐíͨ¹ý¿Ë¡£¨Clone£©·½Ê½À´´´½¨Ò»¸ö¶ÔÏó¡£ÔÚÕâ¸öÀý×ÓÖУ¬½«ÀàÉèΪ¡¡final¡¡¿É½ûÖ¹¿Ë¡µÄ·¢Éú¡£¡¡

ÓÉÓÚSingleton¡¡ÊÇ´ÓObject¡¡Ö±½Ó¼Ì³ÐµÄ£¬ËùÒÔ¡¡clone£¨£©·½·¨»á±£³Ö¡¡protected¡¡£¨Êܱ£»¤£©ÊôÐÔ£¬²»Äܹ»Ê¹Óá¡

Ëü£¨Ç¿ÐÐʹÓûáÔì³É±àÒëÆÚ´íÎ󣩡£È»¶ø£¬¼ÙÈçÎÒÃÇÊÇ´ÓÒ»¸öÀà½á¹¹Öм̳У¬ÄǸö½á¹¹ÒѾ­¹ýÔØÁËclone£¨£©¡¡

·½·¨£¬Ê¹Æä¾ßÓÐpublic¡¡ÊôÐÔ£¬²¢ÊµÏÖÁËCloneable¡¡£¬ÄÇôΪÁ˽ûÖ¹¿Ë¡£¬ÐèÒª¹ýÔØclone£¨£©£¬²¢ÖÀ³öÒ»¸ö¡¡

CloneNotSupportedException¡¡£¨²»Ö§³Ö¿Ë¡ΥÀý£©£¬¾ÍÏóµÚ12Õ½éÉܵÄÄÇÑù¡£Òà¿É¹ýÔØ¡¡clone£¨£©£¬²¢¼òµ¥µØ¡¡

·µ»Ø¡¡this¡£ÄÇÑù×ö»áÔì³ÉÒ»¶¨µÄ»ìÏý£¬ÒòΪ¿Í»§³ÌÐòÔ±¿ÉÄÜ´íÎóµØÈÏΪ¶ÔÏóÉÐδ¿Ë¡£¬ÈÔÈ»²Ù×ݵÄÊÇÔ­À´µÄ¡¡

ÄǸö¡£¡¡¡¡

×¢ÒâÎÒÃDz¢²»ÏÞÓÚÖ»ÄÜ´´½¨Ò»¸ö¶ÔÏó¡£Òà¿ÉÀûÓøü¼Êõ´´½¨Ò»¸öÓÐÏ޵ĶÔÏó³Ø¡£µ«ÔÚÄÇÖÖÇé¿öÏ£¬¿ÉÄÜÐèÒª¡¡

½â¾ö³ØÄÚ¶ÔÏóµÄ¹²ÏíÎÊÌâ¡£Èç¹û²»ÐÒÕæµÄÓöµ½Õâ¸öÎÊÌ⣬¿ÉÒÔ×Ô¼ºÉè¼ÆÒ»Ì×·½°¸£¬ÊµÏÖ¹²Ïí¶ÔÏóµÄµÇ¼ÇÓë³·¡¡

ÏûµÇ¼Ç¡£¡¡¡¡



16¡£1¡£2¡¡·¶Ê½·ÖÀà¡¡¡¡



¡¡¡¶Design¡¡Patterns¡·Ò»ÊéÌÖÂÛÁË23¡¡ÖÖ²»Í¬µÄ·¶Ê½£¬²¢ÒÀ¾ÝÈý¸ö±ê×¼·ÖÀࣨËùÓбê×¼¶¼Éæ¼°ÄÇЩ¿ÉÄÜ·¢Éú±ä¡¡

»¯µÄ·½Ã棩¡£ÕâÈý¸ö±ê×¼ÊÇ£º¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡589¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡591¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

£¨1£©¡¡´´½¨£º¶ÔÏóµÄ´´½¨·½Ê½¡£Õâͨ³£Éæ¼°¶ÔÏó´´½¨Ï¸½ÚµÄ¸
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨10£© ²È£¨9£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡