Éè¼ÆÄ£Ê½Ö®Factory,Java¹¤³§·½·¨
ÊõÓïÃû³Æ£ºFactory
ÊõÓï½âÊÍ£º¹¤³§Ä£Ê½,ÓÃÀ´Ìṩ´´½¨¶ÔÏóµÄ½Ó¿Ú.
¹¤³§Ä£Ê½¹¦ÄܵÄÏêϸ½âÊÍ£º
¹¤³§Ä£Ê½ÊÇÎÒÃÇ×î³£ÓõÄģʽÁË,ÖøÃûµÄJiveÂÛ̳ ,¾Í´óÁ¿Ê¹ÓÃÁ˹¤³§Ä£Ê½£¬¹¤³§Ä£Ê½ÔÚJava³ÌÐòϵͳ¿ÉÒÔ˵ÊÇËæ´¦¿É¼û¡£
Ϊʲô¹¤³§Ä£Ê½ÊÇÈç´Ë³£Óã¿ÒòΪ¹¤³§Ä£Ê½¾ÍÏ൱ÓÚ´´½¨ÊµÀý¶ÔÏóµÄnew£¬ÎÒÃǾ³£Òª¸ù¾ÝÀàClassÉú³ÉʵÀý¶ÔÏó£¬ÈçA a=new A() ¹¤³§Ä£Ê½Ò²ÊÇÓÃÀ´´´½¨ÊµÀý¶ÔÏóµÄ£¬ËùÒÔÒÔºónewʱ¾ÍÒª¶à¸öÐÄÑÛ£¬ÊÇ·ñ¿ÉÒÔ¿¼ÂÇʵÓù¤³§Ä£Ê½£¬ËäÈ»ÕâÑù×ö£¬¿ÉÄܶà×öһЩ¹¤×÷£¬µ«»á¸øÄãϵͳ´øÀ´¸ü´óµÄ¿ÉÀ©Õ¹ÐԺ;¡Á¿ÉÙµÄÐÞ¸ÄÁ¿¡£
ÎÒÃÇÒÔÀàSampleΪÀý£¬ Èç¹ûÎÒÃÇÒª´´½¨SampleµÄʵÀý¶ÔÏó:
Sample sample=new Sample();
¿ÉÊÇ£¬Êµ¼ÊÇé¿öÊÇ£¬Í¨³£ÎÒÃǶ¼ÒªÔÚ´´½¨sampleʵÀýʱ×öµã³õʼ»¯µÄ¹¤×÷,±ÈÈ縳ֵ ²éѯÊý¾Ý¿âµÈ¡£ ×Ö´®5
Ê×ÏÈ£¬ÎÒÃÇÏëµ½µÄÊÇ£¬¿ÉÒÔʹÓÃSampleµÄ¹¹Ô캯Êý£¬ÕâÑùÉú³ÉʵÀý¾Íд³É:
Sample sample=new Sample(²ÎÊý);
µ«ÊÇ£¬Èç¹û´´½¨sampleʵÀýʱËù×öµÄ³õʼ»¯¹¤×÷²»ÊÇÏó¸³ÖµÕâÑù¼òµ¥µÄÊ£¬¿ÉÄÜÊǺܳ¤Ò»¶Î´úÂ룬Èç¹ûҲдÈë¹¹Ô캯ÊýÖУ¬ÄÇÄãµÄ´úÂëºÜÄÑ¿´ÁË£¨¾ÍÐèÒªRefactorÖØÕû£©¡£
Ϊʲô˵´úÂëºÜÄÑ¿´£¬³õѧÕß¿ÉÄÜûÓÐÕâÖָоõ£¬ÎÒÃÇ·ÖÎöÈçÏ£¬³õʼ»¯¹¤×÷Èç¹ûÊǺܳ¤Ò»¶Î´úÂ룬˵Ã÷Òª×öµÄ¹¤×÷ºÜ¶à£¬½«ºÜ¶à¹¤×÷×°ÈëÒ»¸ö·½·¨ÖУ¬Ï൱ÓÚ½«ºÜ¶à¼¦µ°·ÅÔÚÒ»¸öÀº×ÓÀÊǺÜΣÏյģ¬ÕâÒ²ÊÇÓб³ÓÚJavaÃæÏò¶ÔÏóµÄÔÔò£¬ÃæÏò¶ÔÏóµÄ·â×°(Encapsulation)ºÍ·ÖÅÉ(Delegation)¸æËßÎÒÃÇ£¬¾¡Á¿½«³¤µÄ´úÂë·ÖÅÉ“ÇиÉÿ¶Î£¬½«Ã¿¶ÎÔÙ“·â×°”ÆðÀ´(¼õÉٶκͶÎÖ®¼äżºÏÁªÏµÐÔ)£¬ÕâÑù£¬¾Í»á½«·çÏÕ·ÖÉ¢£¬ÒÔºóÈç¹ûÐèÒªÐ޸ģ¬Ö»Òª¸ü¸Äÿ¶Î£¬²»»áÔÙ·¢ÉúÇ£Ò»¶¯°ÙµÄÊÂÇé¡£
ÔÚ±¾ÀýÖУ¬Ê×ÏÈ£¬ÎÒÃÇÐèÒª½«´´½¨ÊµÀýµÄ¹¤×÷ÓëʹÓÃʵÀýµÄ¹¤×÷·Ö¿ª, Ò²¾ÍÊÇ˵£¬Èô´½¨ÊµÀýËùÐèÒªµÄ´óÁ¿³õʼ»¯¹¤×÷´ÓSampleµÄ¹¹Ô캯ÊýÖзÖÀë³öÈ¥¡£ ×Ö´®5
ÕâʱÎÒÃǾÍÐèÒªFactory¹¤³§Ä£Ê½À´Éú³É¶ÔÏóÁË£¬²»ÄÜÔÙÓÃÉÏÃæ¼òµ¥new Sample(²ÎÊý)¡£»¹ÓÐ,Èç¹ûSampleÓиö¼Ì³ÐÈçMySample, °´ÕÕÃæÏò½Ó¿Ú±à³Ì,ÎÒÃÇÐèÒª½«Sample³éÏó³ÉÒ»¸ö½Ó¿Ú.ÏÖÔÚSampleÊǽӿÚ,ÓÐÁ½¸ö×ÓÀàMySample ºÍHisSample .ÎÒÃÇҪʵÀý»¯ËûÃÇʱ,ÈçÏÂ:
Sample mysample=new MySample();
Sample hissample=new HisSample();
Ëæ×ÅÏîÄ¿µÄÉîÈë,Sample¿ÉÄÜ»¹»á"Éú³öºÜ¶à¶ù×Ó³öÀ´", ÄÇôÎÒÃÇÒª¶ÔÕâЩ¶ù×ÓÒ»¸ö¸öʵÀý»¯,¸üÔã¸âµÄÊÇ,¿ÉÄÜ»¹Òª¶ÔÒÔǰµÄ´úÂë½øÐÐÐÞ¸Ä:¼ÓÈëºóÀ´Éú³ö¶ù×ÓµÄʵÀý.ÕâÔÚ´«Í³³ÌÐòÖÐÊÇÎÞ·¨±ÜÃâµÄ.
µ«Èç¹
Ïà¹ØÎĵµ£º
¿ª·¢ÕßÓÐʱ´´½¨µÄ¶àÏ̳߳ÌÐò»áÉú³É´íÎóÖµ»ò²úÉúÆäËüÆæ¹ÖµÄÐÐΪ¡£¹Å¹ÖÐÐΪһ°ã³öÏÖÔÚÒ»¸ö¶àÏ̳߳ÌÐòûʹÓÃͬ²½Á¬ÔØÏ̷߳ÃÎʹؼü´úÂ벿·ÝµÄʱºò¡£Í¬²½Á¬ÔØÏ̷߳ÃÎʹؼü´úÂ벿·ÝÊÇʲôÒâË¼ÄØ£¿ÔÚÕâÆªÎÄÕÂÖнâÊÍÁËͬ²½£¬JavaµÄͬ²½»úÖÆ£¬ÒÔ¼°µ±¿ª·¢ÕßûÓÐÕýȷʹÓÃÕâ¸ö»úÖÆÊ±³öÏÖµÄÁ½¸öÎÊÌâ¡£Ò»µ©Äã¿´ÍêÕâÆªÎÄÕ£¬Äã¾Í¿ÉÒÔ±ÜÃâÔÚ ......
ÈçºÎÓÃJavaƽ̨·ÃÎÊ¿ªÔ´ÔÆ´æ´¢£¿
2009Äê10Ô ×÷Õߣº¼òÖñ/Òë
¾¡¹ÜÔÆ¼ÆËãÕâÒ»ÊõÓï²¢²»ÐÂÏÊ(AmazonÔÚ2006Äê¾Í¿ªÊ¼ÌṩËüµÄÔÆ·þÎñ)£¬µ«´Ó2008ÄêÆðËü²Å¿ªÊ¼ÕæÕý³ÉΪÁ÷Ðдʣ¬ÕâÆÚ¼ä£¬GoogleºÍAma ......
JAVA¿ª·¢Õß×ȥµÄ20¸öÓ¢ÎÄÍøÕ¾
1.[http://www.javaalmanac.com] – Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨¼°Ê¾Àý´úÂë, ÕâÊÇÒ»¸ö²»´íµÄÈ¥´¦.
2.[http://www.onjava.com] – O’ReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ.
3.[http://java.sun.com] – ¹Ù·½µÄJava¿ª·¢ÕßÍøÕ¾ &nda ......