JAVAģʽһ FactoryMethod¡¾×ª¡¿
Òý:¹¤³§·½·¨Ä£Ê½µÄÒâÒåÊǶ¨ÒåÒ»¸ö´´½¨²úÆ·¶ÔÏóµÄ¹¤³§½Ó¿Ú£¬½«Êµ¼Ê´´½¨¹¤×÷ÍÆ³Ùµ½×ÓÀ൱ÖС£ºËÐŤ³§À಻ÔÙ¸ºÔð²úÆ·µÄ´´½¨£¬ÕâÑùºËÐÄÀà³ÉΪһ¸ö³éÏ󹤳§½ÇÉ«£¬½ö¸ºÔð¾ßÌ幤³§×ÓÀà±ØÐëʵÏֵĽӿÚ
¡¡¡¡Ò» ¡¢¹¤³§·½·¨£¨Factory Method£©Ä£Ê½
¡¡
¡¡¹¤³§·½·¨Ä£Ê½µÄÒâÒåÊǶ¨ÒåÒ»¸ö´´½¨²úÆ·¶ÔÏóµÄ¹¤³§½Ó¿Ú£¬½«Êµ¼Ê´´½¨¹¤×÷ÍÆ³Ùµ½×ÓÀ൱ÖС£ºËÐŤ³§À಻ÔÙ¸ºÔð²úÆ·µÄ´´½¨£¬ÕâÑùºËÐÄÀà³ÉΪһ¸ö³éÏ󹤳§½Ç
É«£¬½ö¸ºÔð¾ßÌ幤³§×ÓÀà±ØÐëʵÏֵĽӿڣ¬ÕâÑù½øÒ»²½³éÏ󻯵ĺô¦ÊÇʹµÃ¹¤³§·½·¨Ä£Ê½¿ÉÒÔʹϵͳÔÚ²»Ð޸ľßÌ幤³§½ÇÉ«µÄÇé¿öÏÂÒý½øÐµIJúÆ·¡£
¡¡¡¡¶þ¡¢ ¹¤³§·½·¨Ä£Ê½½ÇÉ«Óë½á¹¹
¡¡¡¡³éÏ󹤳§£¨Creator£©½ÇÉ«£ºÊǹ¤³§·½·¨Ä£Ê½µÄºËÐÄ£¬ÓëÓ¦ÓóÌÐòÎ޹ء£ÈκÎÔÚģʽÖд´½¨µÄ¶ÔÏóµÄ¹¤³§Àà±ØÐëʵÏÖÕâ¸ö½Ó¿Ú¡£
¡¡¡¡¾ßÌ幤³§£¨Concrete Creator£©½ÇÉ«£ºÕâÊÇʵÏÖ³éÏ󹤳§½Ó¿ÚµÄ¾ßÌ幤³§À࣬°üº¬ÓëÓ¦ÓóÌÐòÃÜÇÐÏà¹ØµÄÂß¼£¬²¢ÇÒÊܵ½Ó¦ÓóÌÐòµ÷ÓÃÒÔ´´½¨²úÆ·¶ÔÏó¡£ÔÚÉÏͼÖÐÓÐÁ½¸öÕâÑùµÄ½ÇÉ«£ºBulbCreatorÓëTubeCreator¡£
¡¡¡¡³éÏó²úÆ·£¨Product£©½ÇÉ«£º¹¤³§·½·¨Ä£Ê½Ëù´´½¨µÄ¶ÔÏóµÄ³¬ÀàÐÍ£¬Ò²¾ÍÊDzúÆ·¶ÔÏóµÄ¹²Í¬¸¸Àà»ò¹²Í¬ÓµÓеĽӿڡ£ÔÚÉÏͼÖУ¬Õâ¸ö½ÇÉ«ÊÇLight¡£
¡¡¡¡¾ßÌå²úÆ·£¨Concrete Product£©½ÇÉ«£ºÕâ¸ö½ÇɫʵÏÖÁ˳éÏó²úÆ·½ÇÉ«Ëù¶¨ÒåµÄ½Ó¿Ú¡£Ä³¾ßÌå²úÆ·ÓÐרÃŵľßÌ幤³§´´½¨£¬ËüÃÇÖ®¼äÍùÍùÒ»Ò»¶ÔÓ¦¡£
¡¡¡¡¡¡
¡¡¡¡Èý¡¢Ò»¸ö¼òµ¥µÄʵÀý
¡¡¡¡¡¡
// ²úÆ· Plant½Ó¿Ú
public interface Plant { }
//¾ßÌå²úÆ·PlantA£¬PlantB
public class PlantA implements Plant {
¡¡public PlantA () {
¡¡¡¡System.out.println("create PlantA !");
¡¡}
¡¡public void doSomething() {
¡¡¡¡System.out.println(" PlantA do something ...");
¡¡}
}
public class PlantB implements Plant {
¡¡public PlantB () {
¡¡¡¡System.out.println("create PlantB !");
¡¡}
¡¡public void doSomething() {
¡¡¡¡System.out.println(" PlantB do something ...");
¡¡}
}
// ²úÆ· Fruit½Ó¿Ú
public interface Fruit { }
//¾ßÌå²úÆ·FruitA£¬FruitB
public class FruitA implements Fruit {
¡¡public FruitA() {
¡¡¡¡System.out.println("create FruitA !");
¡¡}
¡¡public void doSomething() {
¡¡¡¡System.out.println(" FruitA do something ...");
¡¡}
}
p
Ïà¹ØÎĵµ£º
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
Ò». Proxyģʽ¶¨Òå:
ΪÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖÆÕâ¸ö¶ÔÏóµÄ·ÃÎÊ.
¶þ.ģʽ½â˵
Proxy´úÀíģʽÊÇÒ»ÖֽṹÐÍÉè¼ÆÄ£Ê½,Ö÷Òª½â¾öµÄÎÊÌâÊÇ:ÔÚÖ±½Ó·ÃÎʶÔÏóʱ´øÀ´µÄÎÊÌâ,±ÈÈç˵:Òª·ÃÎʵĶÔÏóÔÚÔ¶³ÌµÄ»úÆ÷ÉÏ.
ÔÚÃæÏò¶ÔÏóϵͳÖÐ,ÓÐЩ¶ÔÏóÓÉÓÚijЩÔÒò(±ÈÈç¶ÔÏó´´½¨¿ªÏúºÜ´ó,»òÕßijЩ²Ù×÷ÐèÒª°²È«¿ØÖÆ,»òÕßÐèÒª½ø³ÌÍâµÄ·ÃÎÊ),
......
JavaÀ¬»ø»ØÊÕµ÷ÓÅ
ÔÚJavaÖУ¬Í¨³£Í¨Ñ¶ÀàÐ͵ķþÎñÆ÷¶ÔGC(Garbage Collection)±È½ÏÃô¸Ð¡£Í¨³£Í¨Ñ¶·þÎñÆ÷ÿÃëÐèÒª´¦Àí´óÁ¿½ø³öµÄÊý¾Ý°ü£¬ÐèÒª½âÎö£¬·Ö½â³É²»Í¬µÄÒµÎñÂß¼¶ÔÏó²¢×öÏà¹ØµÄÒµÎñ´¦Àí£¬ÕâÑù»áµ¼Ö´óÁ¿µÄÁÙʱ¶ÔÏó±»´´½¨ºÍ»ØÊÕ¡£Í¬Ê±·þÎñÆ÷Èç¹ûÐèҪͬʱ±£´æÓû§×´Ì¬µÄ»°£¬ÓÖ»á²úÉúºÜ¶àÓÀ¾ÃµÄ¶ÔÏ󣬱ÈÈçÓû§session¡£Ò ......
Ò»¡¢ÒýÑÔ
1991Äê,Sun MicroSystem¹«Ë¾ÓÉJames Gosling¡¢Bill JoeµÈÈË×é³ÉµÄGreenС×鿪·¢ÁË
Ò»¸öÃûΪOakµÄÈí¼þ(JavaµÄǰÉí),Ä¿µÄÊÇÓÃÓÚµçÊӵȼÒÓõçÆ÷µÄǶÈëʽӦÓᣵ«ºóÀ´,ÕýÈç
ÎÒÃÇÏÖÔÚËùÖªµÀµÄÄÇÑù,JavaµÄ·¢Õ¹È´³öºõËüµÄ¿ª·¢ÕßµÄÔ¤ÁÏ,Ëü²¢Ã»ÓÐÔÚǶÈëʽӦÓÃÖдóÕ¹
ÉíÊÖ,µ«È´·çÃÒWWWÊÀ½ç¡£
Èç½ñ,JavaÓ¦ÓóÌÐòÔÚIntern ......