°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡an¡¡¡¡extended¡¡¡¡collection¡¡¡¡of¡¡¡¡classes¡¡¡¡that¡¡¡¡cooperate¡¡¡¡to¡¡¡¡support¡¡¡¡a¡¡¡¡plete¡¡¡¡application¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡architecture¡¡¡¡or¡¡¡¡application¡¡¡¡model£»¡¡¡¡providing¡¡¡¡more¡¡plete¡¡application¡¡¡¡development¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡support¡¡than¡¡a¡¡simple¡¡set¡¡of¡¡class¡¡libraries¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡*¡¡ÕâÀïËùÖ¸µÄsupport¡¡²¢²»Ö»ÊÇÊÓ¾õÐÔUI¡¡×é¼þÈçmenu¡¢dialog¡¢listbox¡£¡£¡££¬»¹°üÀ¨Ò»¸öÓ¦Óá¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÌÐòËùÐèÒªµÄÆäËü¹¦ÄÜÉ豸£¬ÏñÊÇDocument£»¡¡View£»¡¡Printing£»¡¡Debugging¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÁíÒ»¸öÏà¹Ø¶¨Òå³öÏÖÔÚRay¡¡Valdes¡¡ÓÚ1992¡¡Äê10¡¡Ô·¢±íÓÚDr¡£¡¡Dobb's¡¡Journal¡¡¡¡µÄ¡¨Sizing¡¡up¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application¡¡Frameworks¡¡and¡¡Class¡¡Libraries¡¨¡¡¡¡Ò»ÎÄÖ®ÖУº¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡An¡¡¡¡application¡¡¡¡framework¡¡¡¡is¡¡¡¡an¡¡¡¡integrated¡¡obj¡¡ect¡oriented¡¡¡¡software¡¡¡¡system¡¡¡¡that¡¡offers¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡all¡¡¡¡the¡¡¡¡application¡level¡¡¡¡classes¡¡documents£»¡¡¡¡views£»¡¡¡¡and¡¡¡¡mands¡¡¡¡¡¡¡¡¡¡needed¡¡¡¡by¡¡¡¡a¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡generic¡¡application¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡An¡¡¡¡application¡¡¡¡framework¡¡¡¡is¡¡¡¡meant¡¡to¡¡be¡¡¡¡used¡¡in¡¡¡¡its¡¡¡¡entirety£»¡¡¡¡and¡¡¡¡fosters¡¡¡¡both¡¡¡¡design¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡reuse¡¡and¡¡code¡¡reuse¡£¡¡An¡¡¡¡application¡¡¡¡framework¡¡¡¡embodies¡¡¡¡a¡¡particular¡¡philosophy¡¡¡¡for¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡structuring¡¡¡¡an¡¡¡¡application£»¡¡¡¡and¡¡¡¡in¡¡return¡¡¡¡for¡¡a¡¡large¡¡mass¡¡of¡¡¡¡prebuilt¡¡¡¡functionality£»¡¡the¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡programmer¡¡gives¡¡up¡¡control¡¡over¡¡many¡¡architectural¡design¡¡decisions¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Donald¡¡G¡£¡¡Firesmith¡¡ÔÚһƪÃûΪ¡¨Frameworks¡¡£º¡¡The¡¡Golden¡¡path¡¡of¡¡the¡¡object¡¡Nirvana¡¨¡¡µÄ¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÎÄÕÂÖжÔApplication¡¡Framework¡¡ÓÐÈç϶¨Ò壺¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡What¡¡¡¡are¡¡¡¡frameworks¡¡¡¡¡¡¡¡They¡¡¡¡are¡¡¡¡significant¡¡¡¡collections¡¡¡¡of¡¡¡¡collaborating¡¡¡¡classes¡¡¡¡that¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡capture¡¡both¡¡¡¡the¡¡¡¡small¡scale¡¡patterns¡¡¡¡and¡¡¡¡maj¡¡or¡¡¡¡mechanisms¡¡¡¡that£»¡¡in¡¡¡¡turn£»¡¡¡¡implement¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡mon¡¡requirements¡¡and¡¡design¡¡in¡¡a¡¡specific¡¡application¡¡domain¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡*¡¡Nirvana¡¡ÊÇÄùÅÌ¡¢×î¸ß¾³½çµÄÒâ˼¡£¡¡
318¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡381¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚ£µÕ¡¡¡¡¡¡¡¡¿‚Ó^Application¡¡Framework¡¡¡¡
Bjarne¡¡Stroustrup¡¡£¨C£«£«¡¡Ô´´Õߣ©ÔÚËûµÄThe¡¡C£«£«¡¡Programming¡¡Language¡¡Ò»ÊéÖжÔÓÚ¡¡
Application¡¡Framework¡¡Ò²ÓÐÈçÏÂÐðÊö£º¡¡
¡¡Libraries¡¡build¡¡out¡¡of¡¡the¡¡kinds¡¡of¡¡classes¡¡described¡¡above¡¡support¡¡design¡¡and¡¡re¡use¡¡of¡¡
¡¡code¡¡¡¡by¡¡¡¡supplying¡¡¡¡building¡¡¡¡blocks¡¡¡¡and¡¡¡¡ways¡¡¡¡of¡¡¡¡bining¡¡¡¡them£»¡¡¡¡the¡¡¡¡application¡¡
¡¡builder¡¡designs¡¡a¡¡framework¡¡into¡¡which¡¡these¡¡mon¡¡building¡¡blocks¡¡are¡¡fitted¡£¡¡An¡¡
¡¡alternative£»¡¡and¡¡sometimes¡¡more¡¡ambitious£»¡¡approach¡¡to¡¡the¡¡support¡¡of¡¡design¡¡and¡¡re
¡¡use¡¡is¡¡to¡¡provide¡¡code¡¡that¡¡establishes¡¡a¡¡mon¡¡framework¡¡into¡¡which¡¡the¡¡application¡¡
¡¡builder¡¡¡¡fits¡¡¡¡application¡specific¡¡¡¡code¡¡¡¡as¡¡¡¡building¡¡¡¡blocks¡£¡¡¡¡Such¡¡¡¡an¡¡¡¡approach¡¡¡¡is¡¡¡¡often¡¡
¡¡called¡¡an¡¡application¡¡framework¡£¡¡The¡¡classes¡¡establishing¡¡such¡¡a¡¡framework¡¡often¡¡have¡¡
¡¡such¡¡fat¡¡interfaces¡¡that¡¡they¡¡are¡¡hardly¡¡types¡¡in¡¡the¡¡traditional¡¡sense¡£¡¡They¡¡approximate¡¡
¡¡the¡¡¡¡ideal¡¡¡¡of¡¡¡¡being¡¡¡¡plete¡¡¡¡applications£»¡¡¡¡except¡¡¡¡that¡¡¡¡they¡¡¡¡don't¡¡¡¡do¡¡¡¡anything¡£¡¡¡¡The¡¡
¡¡specific¡¡actions¡¡are¡¡supplied¡¡by¡¡the¡¡application¡¡programmer¡£¡¡
Kaare¡¡Christian¡¡ÔÚ1994/02/08¡¡µÄPC¡¡Magazine¡¡¡¡ÖÐÓÐһƪ¡¨C£«£«¡¡Application¡¡Frameworks¡¨¡¡
ÎÄÕ£¬ÆäÖÐÓÐÏÂÁÐÐðÊö£¨½Ú¼£©£º¡¡
Á½ÄêÇ°ÎÒÔÚŦԼ±±±ßµÄÏç´å¸ÇÁËÒ»¶°post¡and¡beam¡¡·¿×Ó¡£ÔÚÎÒµ½´ï֮ǰÎÒµÄľ½³ÒѾ¡¡
°Ñÿһ¸ùÁºµÄÍâÐÎÉè¼ÆºÃ²¢ÖÆ×÷ºÃ£¬°ÑÒ»¸ù¸ùµÄ´Ö²Úľ²Ä±ä³ÉÒ»¿é¿é¾âµÃƯƯÁÁÁÁµÄÁã¡¡
¼þ£¬Ò»ÇÐ×¼±¸¾ÍÏß³ÌÖ»´ý°²×°¡£¡¡£¨×¢£ºËùνpost¡and¡beam¡¡Ó¦ÊÇÖ¸ÄÇÖÖÁºÖù¶¼Òѹæ¸ñ»¯£¬¡¡
¿ÉÒÔÓʹº»ØÀ´×Ô¼º¶¯ÊָǵÄDIY¡¡£¡¡¡V¡¡Do¡¡It¡¡Yourself¡¡¡·¿×Ó£©¡£¡¡
ʹÓÃApplication¡¡Framework¡¡½¨ÔìÒ»¸ö¡¡Windows¡¡Ó¦ÓóÌÐòÒ²ÓÐÀàËƵĹý³Ì¡£ÄãʹÓÃÒ»¡¡
×éÔçÒÑ×öºÃµÄÁã¼þ£¬ËüʹÄãÐнø¿ìËÙ¡£ÓÉÓÚÕâЩÁã¼þ¼áÇ¿ÄÍÓöøÇÒÎȹ̣¬ºóÃæµÄ¹¤×÷¾Í¡¡
¼òµ¥¶àÁË¡£µ«×îÖØÒªµÄÊÇ£¬²»ÂÛÄãʹÓùæ¸ñ»¯µÄÁºÖù¿ò¼ÜÀ´¸ÇÒ»¶°·¿×Ó£¬»òÊÇʹÓá¡
Application¡¡Framework¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Windows¡¡³ÌÐò£¬¹¤×÷ÀàÐÍÒÑÈ»¸Ä±ä£¬³öÏÖÁËÒ»ÖÖÍê¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡À´½¨Á¢Ò»¸ö¡¡
ȫոеÄ×öÊ·½·¨¡£ÔÚÎÒµÄpost¡and¡beam¡¡·¿×ÓÖУ¬¹¤×÷ÀàÐ͵ĸı䲢²»×ÜÊÇ´øÀ´°ï¡¡
Öú£»Ã³Ò×ÉÌÔÚÔ¤ÖÆÁºÖùµÄ¼¼ÇÉÉÏ¿ÉÄÜ»áÔâÓöÊÊÓ¦ÉϵÄÀ§ÈÅ¡£Í¬ÑùµÄÊÂÇé×î³õÒ²·¢ÉúÔÚ¡¡
Windows¡¡ÉíÉÏ£¬ÒòΪÄãÔÒѾ߱¸µÄijЩÒÔC¡¡ÓïÑÔдWindows¡¡³ÌÐòµÄÄÜÁ¦£¬ÏÖÔÚÔÚÒÔ¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡319¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡382¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚƪ¡¡¡¡¡¡¡¡œ³ö¡¡¡¡MFC¡¡¡¡³ÌʽÔOÓ‹¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C£«£«¡¡ºÍApplication¡¡Framework¡¡¿ª·¢³ÌÐòµÄ¹ý³ÌÖÐÎÞÓÃÎäÖ®µØ¡£Ê±¼ä¹ýÈ¥Ö®ºó£¬¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Windows¡¡³ÌÐòÉè¼ÆµÄÀàÐÍÒÆתÖÕÓÚ´øÀ´ÁËΰ´óµÄÀûÒæÓë·½±ã¡£Application¡¡Framework¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡±¾Éí°Ñmessage¡¡loops¡¡ºÍÆäËüWindows¡¡µÄ¿àÒÛ¶¼×öµôÁË£¬Ëü´Ù½øÒ»¸ö±È½ÏÖÈÐò¾®È»¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÄ³ÌÐò½á¹¹¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application¡¡Framework¡¡¡½¨Á¢Windows¡¡Ó¦ÓÃÈí¼þËùÓõġ¡C£«£«¡¡Àà±ð¿â¡Èç½ñÒÑÐÐÖ®¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓÐÄ꣬ÒòΪ¶ÔÏóµ¼Ïò³ÌÐòÉè¼ÆÒѾ¿ìËٵػñµÃÁ˽ÓÊܶȡ£Windows¡¡API¡¡ÊdzÌÐòÐԵģ¬¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application¡¡Framework¡¡ÔòÈÃÄãд¶ÔÏóµ¼ÏòʽµÄWindows¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³ÌÐò¡£ËüÃÇÌṩԤÏÈдºÃµÄ»ú¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄÜ£¨ÒÔC£«£«¡¡Àà±ðÐÍʽ³ÊÏÖ³öÀ´£©£¬¿ÉÒÔ¼ÓËÙÓ¦ÓÃÈí¼þµÄ¿ª·¢¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application¡¡Framework¡¡ÌṩÊýÖÖÓŵ㡣»òÐí×îÖØÒªµÄ£»ÊÇËüÃÇÔÚ¶ÔÏóµ¼Ïò³ÌÐòÉè¼Æģʽ¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ï¶ÔWindows¡¡³ÌÐòÉè¼Æ¹ý³ÌµÄÓ°Ïì¡£Äã¿ÉÒÔʹÓÃFramework¡¡À´¼õÇáÀýÐе«·±¸´µÄËö¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê£»¡¡Ä¿Ç°µÄApplication¡¡Framework¡¡¿ÉÒÔÔÚͼÐΡ¢¶Ô»°¿ò¡¢´òÓ¡¡¢ÇóÖú¡¢OCX¡¡¿ØÖÆ×é¼þ¡¢¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¼ôÌù²¾¡¢OLE¡¡µÈ¸÷·½Ãæ°ïÖúÎÒÃÇ£¬ËüÒ²¿ÉÒÔ²úÉúƯÁÁµÄUI¡¡½Ó¿ÚÈ繤¾ßÀ¸ºÍ״̬ÁС£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½è×ÅApplication¡¡Framework¡¡µÄ°ïÖúд³öÀ´µÄÂëÍùÍù±È½ÏÈÝÒ××éÖ¯»¯£»ÒòΪFramework¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¸Ä±äÁËWindows¡¡¹ÜÀíÏûÏ¢µÄ·½·¨¡£Ò²ÐíÓÐÒ»ÌìFramework¡¡»¹¿ÉÒÔ°ïÄãά»¤µ¥Ò»Ò»Ìס¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÂëÒÔÓ¦¸¶²»Í¬µÄÖ´ÐÐƽ̨¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Äã±ØÐë¶ÔApplication¡¡FrameworkÓкܺõÄ֪ʶ¡¡¡¡¡¡£»²ÅÄܹ»ÐÞ¸ÄÓÉËü¸½´øµÄÈí¼þ¿ª·¢¹¤¾ß¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖÆ×÷³öÀ´µÄ¹Ç¸É³ÌÐò¡£ËüÃDz¢²»ÏñVisual¡¡Basic¡¡ÄÇôÈÝÒ×ʹÓᣵ«ÊǶÔApplication¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Framework¡¡×¨¼Ò¶øÑÔ£¬ÕâЩ³ÌÐò´úÂë²úÉúÆ÷¿ÉÒÔÊ¡Ï´óÁ¿Ê±¼ä¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¹ÓÃApplication¡¡Framework¡¡µÄÖ÷ҪȱµãÊÇ£»Ã»Óе¥Ò»Ò»ÌײúÆ·¹ã±»ËùÓеÄC£«£«¡¡±àÒë¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æ÷Ö§³Ö¡£ËùÒÔµ±ÄãÑ¡¶¨Ò»Ì×Framework£¬ÔÚij¸ö·¶Î§À´Ëµ£¬ÄãÒ²µÈÓÚÊÇÑ¡ÔñÁËÒ»¸ö±àÒë¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Æ÷¡£¡¡
320¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡383¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚ£µÕ¡¡¡¡¡¡¡¡¿‚Ó^Application¡¡Framework¡¡¡¡
ΪʲôʹÓÃApplication¡¡Framework¡¡
¡¡¡¡¡¡¡¡¡¡ËäÈ»Application¡¡Framework¡¡²¢²»ÊÇйÛÄËüÃÇÈ´ÔÚ×î½üÊýÄê²Å³ÉΪPC¡¡Æ½Ì¨ÉÏÈí¼þ¿ª¡¡
¡¡¡¡¡¡¡¡¡¡·¢µÄÖ÷Á÷¹¤¾ß¡£¶ÔÏóµ¼ÏòÓïÑÔÊǾßÌåʵÏÖApplication¡¡Framework¡¡¡¡µÄÀíÏëÔؾߣ¬¶øC£«£«¡¡±à¡¡
¡¡¡¡¡¡¡¡¡¡ÒëÆ÷ÔÚPC¡¡Æ½Ì¨ÉϵijöÏÖÓëÆÕ¼°ÖÕÓÚÔÊÐíÖ÷Á÷PC¡¡³ÌÐòÔ±Äܹ»ÏíÊÜApplication¡¡
¡¡¡¡¡¡¡¡¡¡Framework¡¡´øÀ´µÄÀûÒæ¡£¡¡
¡¡¡¡¡¡¡¡¡¡´Ó°ËÊ®Äê´úÔçÆÚµ½¾ÅÊ®Äê´ú³õʼ£¬C£«£«¡¡´ó¶¼´æÔÚÓÚUNIX¡¡ÏµÍ³ºÍÑо¿ÈËÔ±µÄ¹¤×÷Õ¾¡¡
¡¡¡¡¡¡¡¡¡¡ÖУ¬²»ÔÚPC¡¡¡¡ÒÔ¼°ÉÌÒµ²úÆ·ÉÏ¡£C£«£«¡¡¡¡ÒÔ¼°ÆäËüµÄ¶ÔÏóµ¼ÏòÓïÑÔ£¨ÀýÈçSmalltalk¡80£©Ê¹¡¡
¡¡¡¡¡¡¡¡¡¡Ò»Ð©´óѧºÍÑо¿¼Æ»®Éú²ú³öÏÖ½ñÉÌÒµ»¯Application¡¡Framework¡¡¡¡µÄ±Ç×æ¡£µ«ÊÇÕâЩÔçÆÚ²ú¡¡
¡¡¡¡¡¡¡¡¡¡Æ·²¢Ã»ÓÐÃ÷ÏÔÇø¸ô³öÓ¦ÓóÌÐòÓëApplication¡¡Framework¡¡Ö®¼äµÄ½çÏß¡£¡¡
¡¡¡¡¡¡¡¡¡¡½ñÌìÓ¦ÓÃÈí¼þµÄ¹¦ÄÜÓúÀ´Óú¸´ÔÓ£¬½¨ÔìËüÃǵŤ¾ßÒิÈç´Ë¡£Application¡¡Framework¡¡¡¢Class¡¡
¡¡¡¡¡¡¡¡¡¡Library¡¡ºÍGUI¡¡toolkits¡¡ÊÇÈý´óÀàÐ͵ÄÈí¼þ¿ª·¢¹¤¾ß£¨Çë¼û·½¿é˵Ã÷£©£¬ÕâÈýÀ๤¾ßËäÈ»¡¡
¡¡¡¡¡¡¡¡¡¡ÒÔ²»Í¬µÄ¼¼Êõ·½Ê½±Æ½üÄ¿±ê£¬ËüÃÇÈ´Ò»ÖÂ×·ÇóÏàͬ¶ø»ù±¾µÄÈí¼þ¿ª·¢¹Ø¼üÀûÒ棺½µµÍд¡¡
¡¡¡¡¡¡¡¡¡¡³ÌÐò´úÂëËù»¨µÄ¾«Á¦¡¢¼ÓËÙ¿ª·¢Ð§ÂÊ¡¢¼ÓÇ¿¿Éά»¤ÐÔ¡¢Ôö¼ÓÇ¿¹ÌÐÔ£¨robustness¡¡£©¡¢Îª×éºÏ¡¡
¡¡¡¡¡¡¡¡¡¡Ê½µÄÈí¼þ»úÄÜÌṩ¸Ü¸ËÖ§µã£¨ÓÐÁËÕâ¸öÖ§µã£¬ÔÙ´óµÄÈí¼þÎÒÒ²¾ÙµÃÆðÀ´£©¡£¡¡
¡¡¡¡¡¡¡¡¡¡µ±ÎÒÃÇÃæÁÙÈí¼þ¹¤Òµ¸ïÃü£¬ÎÒÃǵĵÚÒ»¸ö¿¼Á¿µãÊÇ£ºÎÒµÄÈí¼þ¿ª·¢¼¼ÊõÒª´ÓÄÄÒ»¸ö¼¼Êõ¡¡
¡¡¡¡¡¡¡¡¡¡ÃæÇÐÈ룿´Óraw¡¡API¡¡»¹ÊǴӸ߽×Ò»µãµÄ¹¤¾ß£¿Èç¹û´ð°¸ÊǺóÕߣ¬µÚ¶þ¸ö¿¼Á¿µãÊÇÎÒʹÓá¡
¡¡¡¡¡¡¡¡¡¡ÄÄÒ»²ã¼¶µÄ¹¤¾ß£¿GUI¡¡toolkits¡¡»¹ÊÇClass¡¡Library¡¡»¹ÊÇApplication¡¡Framework¡¡£¿Èç¹û´ð¡¡
¡¡¡¡¡¡¡¡¡¡°¸ÓÖÊǺóÕߣ¬µÚÈý¸ö¿¼Á¿µãÊÇÎÒʹÓÃÄÄÒ»ÌײúÆ·£¿MFC¡¡»òOWL¡¡»òOpen¡¡Class¡¡Library¡¡£¿¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£¨Ä¿Ç°PC¡¡É