°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 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¡¡µÄÐÂ×ÓÀàµÄÐÎʽ½«ÐµĹ