ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡ÔĶÁ¹ý³Ì·¢ÏÖÈκδíÎóÇë¸æËßÎÒÃÇ£¬Ð»Ð»£¡£¡ ±¨¸æ´íÎó
Ò»ÊÀÊé³Ç ·µ»Ø±¾ÊéĿ¼ ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ½øÈëÊé°É ¼ÓÈëÊéÇ©

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ196ÕÂ

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




import¡¡c16¡£trash¡£*£»¡¡¡¡

¡¡¡¡

public¡¡class¡¡DDCardboard¡¡extends¡¡Cardboard¡¡¡¡¡¡

¡¡¡¡¡¡¡¡implements¡¡TypedBinMember¡¡£û¡¡¡¡

¡¡¡¡public¡¡DDCardboard£¨double¡¡wt£©¡¡£û¡¡super£¨wt£©£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡boolean¡¡addToBin£¨TypedBin£§£§¡¡tb£©¡¡£û¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡if£¨tb£§i£§¡£add£¨this£©£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return¡¡true£»¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡false£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

ÿ¸öaddToBin£¨£©ÄڵĴúÂë»áΪÊý×éÖеÄÿ¸öTypeBin¡¡¶ÔÏóµ÷ÓÃadd£¨£©¡£µ«Çë×¢Òâ²ÎÊý£ºthis¡£¶ÔTrash¡¡µÄÿ¡¡

¸ö×ÓÀàÀ´Ëµ£¬this¡¡µÄÀàÐͶ¼ÊDz»Í¬µÄ£¬ËùÒÔ²»ÄÜÈÏΪ´úÂë¡°ÍêÈ«¡±Ò»Ñù¡ª¡ª¾¡¹ÜÒÔºóÔÚ¡¡Java¡¡Àï¼ÓÈë²ÎÊý»¯¡¡

ÀàÐÍ»úÖƺó±ã¿ÉÈÏΪһÑù¡£ÕâÊÇË«ÖØÅÉDzµÄµÚÒ»¸ö²¿·Ö£¬ÒòΪһµ©½øÈëÕâ¸ö·½·¨ÄÚ²¿£¬±ã¿ÉÖªµÀµ½µ×ÊÇ¡¡

Aluminum¡¡£¬Paper£¬»¹ÊÇÆäËûʲôÀ¬»øÀàÐÍ¡£ÔÚ¶Ôadd£¨£©µÄµ÷Óùý³ÌÖУ¬ÕâÖÖÐÅÏ¢ÊÇͨ¹ýthis¡¡µÄÀàÐÍ´«µÝ¡¡

µÄ¡£±àÒëÆ÷»á·ÖÎö³ö¶Ô¡¡add£¨£©ÕýÈ·µÄ¹ýÔØ°æ±¾µÄµ÷Óᣵ«ÓÉÓÚtb£§i£§»á²úÉúÖ¸Ïò»ù´¡ÀàÐÍ¡¡TypeBin¡¡µÄÒ»¸ö¾ä¡¡

±ú£¬ËùÒÔ×îÖÕ»áµ÷ÓÃÒ»¸ö²»Í¬µÄ·½·¨¡ª¡ª¾ßÌåʲô·½·¨È¡¾öÓÚµ±Ç°Ñ¡ÔñµÄ¡¡TypeBin¡¡µÄÀàÐÍ¡£ÄǾÍÊǵڶþ´ÎÅÉ¡¡

Dz¡£¡¡¡¡

ÏÂÃæÊÇTypeBin¡¡µÄ»ù´¡Àࣺ¡¡¡¡

¡¡¡¡

//£º¡¡TypedBin¡£java¡¡¡¡

//¡¡Vector¡¡that¡¡knows¡¡how¡¡to¡¡grab¡¡the¡¡right¡¡type¡¡¡¡

package¡¡c16¡£doubledispatch£»¡¡¡¡

import¡¡c16¡£trash¡£*£»¡¡¡¡

import¡¡java¡£util¡£*£»¡¡¡¡

¡¡¡¡

public¡¡abstract¡¡class¡¡TypedBin¡¡£û¡¡¡¡

¡¡¡¡Vector¡¡v¡¡=¡¡new¡¡Vector£¨£©£»¡¡¡¡

¡¡¡¡protected¡¡boolean¡¡addIt£¨Trash¡¡t£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡v¡£addElement£¨t£©£»¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡true£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Enumeration¡¡elements£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡v¡£elements£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDAluminum¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡false£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡609¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡611¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDPaper¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡false£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDGlass¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡false£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDCardboard¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡false£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

¿ÉÒÔ¿´µ½£¬¹ýÔصġ¡add£¨£©·½·¨È«¶¼»á·µ»Øfalse¡£Èç¹ûδÔÚÑÜÉúÀàÀï¶Ô·½·¨½øÐйýÔØ£¬Ëü¾Í»áÒ»Ö±·µ»Ø¡¡

false£¬¶øÇÒµ÷ÓÃÕߣ¨Ä¿Ç°ÊÇ¡¡addToBin£¨£©£©»áÈÏΪµ±Ç°Trash¡¡¶ÔÏóÉÐδ³É¹¦¼ÓÈëÒ»¸ö¼¯ºÏ£¬ËùÒÔ»á¼ÌÐø²éÕÒ¡¡

ÕýÈ·µÄ¼¯ºÏ¡£¡¡¡¡

ÔÚTypeBin¡¡µÄÿһ¸ö×ÓÀàÖУ¬¶¼Ö»ÓÐÒ»¸ö¹ýÔصķ½·¨»á±»¹ýÔØ¡ª¡ª¾ßÌåÈ¡¾öÓÚ×¼±¸´´½¨µÄÊÇʲôÀ¬»øͲÀà¡¡

ÐÍ¡£¾Ù¸öÀý×ÓÀ´Ëµ£¬CardboardBin¡¡»á¹ýÔØ¡¡add£¨DDCardboard£©¡£¹ýÔصķ½·¨»á½«À¬»ø¶ÔÏó¼ÓÈëËüµÄ¼¯ºÏ£¬²¢·µ¡¡

»Øtrue¡£¶øCardboardBin¡¡ÖÐÊ£ÓàµÄËùÓÐadd£¨£©·½·¨¶¼»á¼ÌÐø·µ»Ø¡¡false£¬ÒòΪËüÃÇÉÐδ¹ýÔØ¡£ÊÂʵÉÏ£¬¼ÙÈç¡¡

ÔÚÕâÀï²ÉÓÃÁ˲ÎÊý»¯ÀàÐÍ»úÖÆ£¬Java¡¡´úÂëµÄ×Ô¶¯´´½¨¾ÍÒª·½±ãµÃ¶à£¨Ê¹Óá¡C£«£«µÄ¡°Ä£°å¡±£¬ÎÒÃDz»±Ø·Ñʵء¡

Ϊ×ÓÀà±àÂ룬»òÕß½«addToBin£¨£©·½·¨ÖÃÈëTrash¡¡ÀJava¡¡ÔÚÕâ·½ÃæÉÐÓдý¸Ä½ø£©¡£¡¡¡¡

ÓÉÓÚ¶ÔÕâ¸öÀý×ÓÀ´Ëµ£¬À¬»øµÄÀàÐÍÒѾ­¶¨ÖƲ¢ÖÃÈëÒ»¸ö²»Í¬µÄĿ¼£¬ËùÒÔÐèÒªÓÃÒ»¸ö²»Í¬µÄÀ¬»øÊý¾ÝÎļþÁî¡¡

ÆäÔËתÆðÀ´¡£ÏÂÃæÊÇÒ»¸öʾ·¶ÐԵġ¡DDTrash¡£dat£º¡¡¡¡

¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º54¡¡¡¡

c16¡£DoubleDispatch¡£DDPaper£º22¡¡¡¡

c16¡£DoubleDispatch¡£DDPaper£º11¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º17¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º89¡¡¡¡

c16¡£DoubleDispatch¡£DDPaper£º88¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º76¡¡¡¡

c16¡£DoubleDispatch¡£DDCardboard£º96¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º25¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º34¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º11¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º68¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º43¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º27¡¡¡¡

c16¡£DoubleDispatch¡£DDCardboard£º44¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º18¡¡¡¡

c16¡£DoubleDispatch¡£DDPaper£º91¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º63¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º50¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º80¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º81¡¡¡¡

c16¡£DoubleDispatch¡£DDCardboard£º12¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º12¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º54¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º36¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º93¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º93¡¡¡¡

c16¡£DoubleDispatch¡£DDPaper£º80¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º36¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡610¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡612¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

c16¡£DoubleDispatch¡£DDGlass£º12¡¡¡¡

c16¡£DoubleDispatch¡£DDGlass£º60¡¡¡¡

c16¡£DoubleDispatch¡£DDPaper£º66¡¡¡¡

c16¡£DoubleDispatch¡£DDAluminum£º36¡¡¡¡

c16¡£DoubleDispatch¡£DDCardboard£º22¡¡¡¡

¡¡¡¡

ÏÂÃæÁгö³ÌÐòÊ£ÓàµÄ²¿·Ö£º¡¡¡¡

¡¡¡¡

//£º¡¡DoubleDispatch¡£java¡¡¡¡

//¡¡Using¡¡multiple¡¡dispatching¡¡to¡¡handle¡¡more¡¡¡¡

//¡¡than¡¡one¡¡unknown¡¡type¡¡during¡¡a¡¡method¡¡call¡£¡¡¡¡

package¡¡c16¡£doubledispatch£»¡¡¡¡

import¡¡c16¡£trash¡£*£»¡¡¡¡

import¡¡java¡£util¡£*£»¡¡¡¡

¡¡¡¡

class¡¡AluminumBin¡¡extends¡¡TypedBin¡¡£û¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDAluminum¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡addIt£¨a£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡PaperBin¡¡extends¡¡TypedBin¡¡£û¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDPaper¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡addIt£¨a£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡GlassBin¡¡extends¡¡TypedBin¡¡£û¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDGlass¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡addIt£¨a£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡CardboardBin¡¡extends¡¡TypedBin¡¡£û¡¡¡¡

¡¡¡¡public¡¡boolean¡¡add£¨DDCardboard¡¡a£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡addIt£¨a£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡TrashBinSet¡¡£û¡¡¡¡

¡¡¡¡private¡¡TypedBin£§£§¡¡binSet¡¡=¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡new¡¡AluminumBin£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡new¡¡PaperBin£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡new¡¡GlassBin£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡new¡¡CardboardBin£¨£©¡¡¡¡

¡¡¡¡£ý£»¡¡¡¡

¡¡¡¡public¡¡void¡¡sortIntoBins£¨Vector¡¡bin£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Enumeration¡¡e¡¡=¡¡bin¡£elements£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡while£¨e¡£hasMoreElements£¨£©£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡TypedBinMember¡¡t¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨TypedBinMember£©e¡£nextElement£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡if£¨£¡t¡£addToBin£¨binSet£©£©¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡611¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡613¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¨Couldn't¡¡add¡¡¡¨¡¡£«¡¡t£©£»¡¡¡¡

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

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡TypedBin£§£§¡¡binSet£¨£©¡¡£û¡¡return¡¡binSet£»¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡DoubleDispatch¡¡£û¡¡¡¡

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

¡¡¡¡¡¡¡¡Vector¡¡bin¡¡=¡¡new¡¡Vector£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡TrashBinSet¡¡bins¡¡=¡¡new¡¡TrashBinSet£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡ParseTrash¡¡still¡¡works£»¡¡without¡¡changes£º¡¡¡¡

¡¡¡¡¡¡¡¡ParseTrash¡£fillBin£¨¡¨DDTrash¡£dat¡¨£»¡¡bin£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Sort¡¡from¡¡the¡¡master¡¡bin¡¡into¡¡the¡¡¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡individually¡­typed¡¡bins£º¡¡¡¡

¡¡¡¡¡¡¡¡bins¡£sortIntoBins£¨bin£©£»¡¡¡¡

¡¡¡¡¡¡¡¡TypedBin£§£§¡¡tb¡¡=¡¡bins¡£binSet£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Perform¡¡sumValue¡¡for¡¡each¡¡bin¡£¡£¡£¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡Trash¡£sumValue£¨tb¡¡£§i£§¡£v£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡¡£¡£¡£¡¡and¡¡for¡¡the¡¡master¡¡bin¡¡¡¡

¡¡¡¡¡¡¡¡Trash¡£sumValue£¨bin£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

ÆäÖУ¬TrashBinSet¡¡·â×°Á˸÷ÖÖ²»Í¬ÀàÐ͵ġ¡TypeBin£¬Í¬Ê±»¹ÓС¡sortIntoBins£¨£©·½·¨¡£ËùÓÐË«ÖØÅÉDzʼþ¶¼¡¡

»áÔÚÄǸö·½·¨Àï·¢Éú¡£¿ÉÒÔ¿´µ½£¬Ò»µ©ÉèÖúýṹ£¬ÔÙ¹éÀà³É¸÷ÖÖTypeBin¡¡µÄ¹¤×÷¾Í±äµÃÊ®·Ö¼òµ¥ÁË¡£³ý´Ë¡¡

ÒÔÍ⣬Á½¸ö¶¯Ì¬·½·¨µ÷ÓõÄЧÂÊ¿ÉÄÜÒ²±ÈÆäËûÅÅÐò·½·¨¸ßһЩ¡£¡¡¡¡

×¢ÒâÕâ¸öϵͳµÄ·½±ãÐÔÖ÷ÒªÌåÏÖÔÚ¡¡main£¨£©ÖУ¬Í¬Ê±»¹Òª×¢Òâµ½ÈκÎÌض¨µÄÀàÐÍÐÅÏ¢ÔÚmain£¨£©Öж¼ÊÇÍêÈ«¶ÀÁ¢¡¡

µÄ¡£Ö»ÓëTrash¡¡»ù´¡Àà½Ó¿ÚͨÐŵÄÆäËûËùÓз½·¨¶¼²»»áÊܵ½Trash¡¡ÀàÖз¢ÉúµÄ¸Ä±äµÄ¸ÉÈÅ¡£¡¡¡¡

Ìí¼ÓÐÂÀàÐÍÐèÒª×÷³öµÄ¸Ä¶¯ÊÇÍêÈ«¹ÂÁ¢µÄ£ºÎÒÃÇËæͬ¡¡addToBin£¨£©·½·¨¼Ì³ÐTrash¡¡µÄÐÂÀàÐÍ£¬È»ºó¼Ì³ÐÒ»¸öС¡

µÄTypeBin¡¡£¨Õâʵ¼ÊÖ»ÊÇÒ»¸ö¸±±¾£¬¿ÉÒÔ¼òµ¥µØ±à¼­£©£¬×îºó½«Ò»ÖÖÐÂÀàÐͼÓÈëTrashBinSet¡¡µÄ¼¯ºÏ³õ»¯»¯¡¡

¹ý³Ì¡£¡¡¡¡



16¡£7¡¡·ÃÎÊÆ÷·¶Ê½¡¡¡¡



½ÓÏÂÀ´£¬ÈÃÎÒÃÇ˼¿¼ÈçºÎ½«¾ßÓÐÍêÈ«²»Í¬Ä¿±êµÄÒ»¸öÉè¼Æ·¶Ê½Ó¦Óõ½À¬»ø¹éÀàϵͳ¡£¡¡¡¡

¶ÔÕâ¸ö·¶Ê½£¬ÎÒÃDz»ÔÙ¹ØÐÄÔÚϵͳÖмÓÈëÐÂÐÍ¡¡Trash¡¡Ê±µÄÓÅ»¯¡£ÊÂʵÉÏ£¬Õâ¸ö·¶Ê½Ê¹ÐÂÐÍTrash¡¡µÄÌí¼ÓÏԵá¡

¸ü¼Ó¸´ÔÓ¡£¼Ù¶¨ÎÒÃÇÓÐÒ»¸ö»ù±¾Àà½á¹¹£¬ËüÊǹ̶¨²»±äµÄ£»Ëü»òÐíÀ´×ÔÁíÒ»¸ö¿ª·¢Õß»ò¹«Ë¾£¬ÎÒÃÇÎÞȨ¶ÔÄÇ¡¡

¸ö½á¹¹½øÐÐÈκÎÐ޸ġ£È»¶ø£¬ÎÒÃÇÓÖÏ£ÍûÔÚÄǸö½á¹¹Àï¼ÓÈëеĶàÐÎÐÔ·½·¨¡£ÕâÒâζ×ÅÎÒÃÇÒ»°ã±ØÐëÔÚ»ù´¡¡¡

ÀàµÄ½Ó¿ÚÀïÌí¼ÓijЩ¶«Î÷¡£Òò´Ë£¬ÎÒÃÇÄ¿Ç°ÃæÁÙµÄÀ§¾³ÊÇÒ»·½ÃæÐèÒªÏò»ù´¡ÀàÌí¼Ó·½·¨£¬ÁíÒ»·½ÃæÓÖ²»Äܸġ¡

¶¯»ù´¡Àà¡£ÔõÑù½â¾öÕâ¸öÎÊÌâÄØ£¿¡¡¡¡

¡¡¡°·ÃÎÊÆ÷¡±£¨Visitor£©·¶Ê½Ê¹ÎÒÃÇÄÜÀ©Õ¹»ù±¾ÀàÐ͵Ľӿڣ¬·½·¨ÊÇ´´½¨ÀàÐÍΪVisitor¡¡µÄÒ»¸ö¶ÀÁ¢µÄÀà½á¡¡

¹¹£¬¶ÔÒÔºóÐè¶Ô»ù±¾ÀàÐͲÉÈ¡µÄ²Ù×÷½øÐÐÐéÄâ¡£»ù±¾ÀàÐ͵ÄÈÎÎñ¾ÍÊǼòµ¥µØ¡°½ÓÊÕ¡±·ÃÎÊÆ÷£¬È»ºóµ÷Ó÷ÃÎÊ¡¡

Æ÷µÄ¶¯Ì¬°ó¶¨·½·¨¡£¿´ÆðÀ´¾ÍÏóÏÂÃæÕâÑù£º¡¡¡¡

¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡612¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡614¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡

ÏÖÔÚ£¬¼ÙÈç¡¡v¡¡ÊÇÒ»¸öÖ¸Ïò¡¡Aluminum¡¡£¨ÂÁÖÆÆ·£©µÄVisitable¡¡¾ä±ú£¬ÄÇôÏÂÊö´úÂ룺¡¡¡¡

PriceVisitor¡¡pv¡¡=¡¡new¡¡PriceVisitor£¨£©£»¡¡¡¡

v¡£accept£¨pv£©£»¡¡¡¡

»áÔì³ÉÁ½¸ö¶àÐÎÐÔ·½·¨µ÷Ó㺵ÚÒ»¸ö»áÑ¡Ôñaccept£¨£©µÄAluminum¡¡°æ±¾£»µÚ¶þ¸öÔòÔÚ¡¡accept£¨£©À¡ªÓûù´¡¡¡

ÀàVisitor¡¡¾ä±úv¡¡¶¯Ì¬µ÷Óá¡visit£¨£©µÄÌض¨°æ±¾Ê±¡£¡¡¡¡

ÕâÖÖÅäÖÃÒâζ×ſɲÉÈ¡¡¡Visitor¡¡µÄÐÂ×ÓÀàµÄÐÎʽ½«ÐµĹ
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡