JavaÉè¼ÆÄ£Ê½ÏµÁн̳̣¨Ò»£©¹¤³§Ä£Ê½factory
½ñÌìºÍ´ó¼ÒÒ»ÆðѧϰJavaµÄÉè¼ÆÄ£Ê½¡£±¾È˵Äˮƽ²»ÊǺܸߣ¬ÕâϵÁÐÎÄÕÂÖ»ÊÇ×Ô¼ºÑ§Ï°µÄ¹ý³Ì£¬²¢Ï£ÍûÄÜͬ´ó¼Ò·ÖÏí¾Ñé¡£
ÏÈ˵ÏÂÎÒ¶Ô¹¤³§Ä£Ê½µÄÀí½â£ºµ±ÎÒÃÇÐèҪij¸ö¶ÔÏóʱ£¬×îÖ±½ÓµÄ°ì·¨ÊÇ¿´µ½Õâ¸ö¶ÔÏó¾ÍÄùýÀ´¡£µ«Êǵ±¶ÔÏó·Ç³£¶àµÄʱºò£¬ÕÒÆðÀ´¾ÍºÜ²»·½±ã¡£Õâʱ¾ÍÐèÒªÒ»¸öÖнéÀ´°ïÖúÎÒÃÇÈ¡µÃÏëÒªµÄ¶«Î÷£¬Õâ¸öÖнé¾ÍÊǹ¤³§£¨factory£©¡£
¹¤³§Ä£Ê½¿É·ÖΪÈý¸ö·ÖÀࣨ¼òµ¥¹¤³§Ä£Ê½Simple Factory¡¢ ¹¤³§·½·¨Ä£Ê½Factory Method¡¢ ³éÏ󹤳§Ä£Ê½Abstract Factory£©
ÎÒÀ´Ä£ÄâÒ»¸ö³¡¾°£º¶¯ÎïÔ°¹ÜÀíԱÿÌ춼Ҫȷ±£¶¯ÎïµÄ½¡¿µ£¬È·¶¨¶¯Î。¿µµÄÒ»ÖÖ¼òµ¥·½·¨¾ÍÊÇÌýÒ»Ìý¶¯ÎïµÄ½ÐÉùÊDz»ÊÇÕý³£¡£ÕâÑù£¬¹ÜÀíÔ±¾ÍÐèÒªËæÊ±ÕÒµ½ÈÎÒ»ÖÖ¶¯ÎïÒÔÈ·¶¨¶¯ÎïµÄÇé¿ö¡£ÏÂÃæÊǶ¯ÎïÏà¹ØÀࣨÖÁÓÚ¶¯Îï԰ΪʲôÓÐèºÍ¹·´ó¼Ò¾Í²»ÒªÌ«¼Æ½ÏÁË……£©£º
interface£ºAnimal£¨¶¯ÎïµÄ½Ó¿Ú£©
package com.captain.factory;
/**
* <P>Title£º¶¯Îï½Ó¿Ú<p>
* @author ´¬³¤¹¤×÷ÊÒ
*/
public interface Animal {
void call();
}
class£ºCat£¨Ã¨£©
package com.captain.factory;
/**
* <p>Title£ºÃ¨<p>
* @author ´¬³¤¹¤×÷ÊÒ
*/
public class Cat implements Animal {
/**
* è½Ð
* @param ÎÞ
* @return void
*/
public void call() {
System.out.print("meow");
}
}
class£ºDog£¨¹·£©
package com.captain.factory;
/**
* <p>Title£º¹·<p>
* @author ´¬³¤¹¤×÷ÊÒ
*/
public class Dog implements Animal {
/**
* ¹·½Ð
* @param ÎÞ
* @return void
*/
public void call() {
System.out.print("bark");
}
}
class£ºTiger£¨ÀÏ»¢£©
package com.captain.factory;
/**
* <p>Title£ºÀÏ»¢<p>
* @author ´¬³¤¹¤×÷ÊÒ
*/
public class Tiger implements Animal {
/**
* ÀÏ»¢½Ð
* @param ÎÞ
* @return void
*/
public void call() {
System.out.print("roar");
}
}
ÏÂÃæÏȽéÉܼòµ¥¹¤³§Ä£Ê½£º
class£ºSimpleFactory£¨¼òµ¥¹¤³§£©
package com.captain.factory;
/**
* <p>Title£º¼òµ¥¹¤³§Ä£Ê½-¹¤³§Àà<p>
* @author ´¬³¤¹¤×÷ÊÒ
*/
public class SimpleFactory {
/**
* ÕÙ»½¶¯Îï
* @param s ÕÙ»½¶¯ÎïµÄÖÖÀà
* @return animal ¸ÃÖÖÀàµÄ¶¯ÎïʵÀý
*/
public static Animal search(String s){
Ïà¹ØÎĵµ£º
µÚÒ»£¬Ì¸Ì¸final£¬ finally£¬ finalizeµÄÇø±ð¡£
¡¡¡¡final ÓÃÓÚÉùÃ÷ÊôÐÔ£¬·½·¨ºÍÀ࣬·Ö±ð±íʾÊôÐÔ²»¿É±ä£¬·½·¨²»¿É¸²¸Ç£¬À಻¿É¼Ì³Ð¡£finallyÊÇÒì³£´¦ÀíÓï¾ä½á¹¹µÄÒ»²¿·Ö£¬±íʾ×ÜÊÇÖ´ÐС£finalizeÊÇObjectÀàµÄÒ»¸ö·½·¨£¬ÔÚÀ¬»øÊÕ¼¯Æ÷Ö´ÐеÄʱºò»áµ÷Óñ»»ØÊÕ¶ÔÏóµÄ´Ë·½·¨£¬¿ÉÒÔ¸²¸Ç ......
1.ÉùÃ÷Êý×éÒýÓñäÁ¿Ê±²»ÄÜÖ¸¶¨Êý×éµÄ³¤¶È¡£È磺int x[1];Õâ¾ä»°·Ç·¨¡£
2.Êý×é¶ÔÏóµÄ´´½¨£¬ÀýÈ磺
int [] scores = new int[100];
Ê×ÏÈÔÚ¶ÑÖзÖÅäÄÚ´æ¿Õ¼ä£¬ÉÏÊöµÄ¾ÍÊÇ400¸ö×Ö½Ú£¬È»ºó¾Í¸øÆä¸³Ä¬ÈÏÖµ£¬¸÷¸öÊý¾ÝÀàÐ͵ÄĬÈÏÖµ²»Í¬£¬intΪ0.
3.·µ»ØÊý×é¶ÔÏóµÄÒýÓãº
int [] x =new int [10]; <=> int size = 10; i ......
±¾È˾ãËÄÄêÑз¢¾Ñ飨javaµÄ£©
˸øÎÒÍÆ¼ö·ÝǶÈëʽcְ룬cÓïÑÔһֱûÂäÏ£¬Ñ§µÄ»¹ÐС£¡£¡£¹¤×Ê¿ªÎÒ2k¾ÍÐУ¡
ֻΪ³É¹¦´òÈëǶÈëʽÊг¡¡£¡£¡£¸ø¸ö»ú»á°É¡£¡£
ÎÒÕæµÄÊÇÌ«ÏëºÍÄãÃÇ×öͬÐÐÀ²£¡
ÓÐÒâÏòµÄ¿ÉÒÔÁªÏµÎÒ¡£¡£ÎÒ²»Ìô´ýÓö£¬¶Ô¹¤×÷¾ÍÒ»¸öÒªÇó£¬Ç¶Èëʽ¿ª·¢¡£¡£¡£ÎÒÓе쬾ÍÊÇ4ÄêµÄjavaÑз¢¾ÑéºÍc»ù´¡¡£¡£¡£ÌáÇ ......
ÔÚJavaÖУ¬synchronized¹Ø¼ü×ÖΪ·ÀÖ¹×ÊÔ´³åÍ»ÌṩÁËÖ§³Ö£¬Æä×÷ÓÃÓòÓжþÖÖ£º
ʵÀý·¶Î§¡£
¶ÔÏóʵÀý·¶Î§ÄÚsynchronizedʹÓõÄÁ½ÖÖÐÎʽ£º
ʵÀý·¶Î§Í¬²½·½·¨
publicd class syncTest {
…
synchronized void aMethod() {
//ÐèҪͬ²½Ê¹ÓõĴúÂë
}
}
synchronized aMethod(){}¿ÉÒÔ·ÀÖ¹¶à¸öÏß³Ìͬʱ ......