ͨË×Ò×¶®µÄJavaÉè¼ÆÄ£Ê½Ö®¹¤³§·½·¨Ä£Ê½
¡¡Ò» ¡¢¹¤³§·½·¨£¨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 ...");
¡¡}
}
public class FruitB implements Fruit {
¡¡public FruitB() {
¡¡¡¡System.out.println("create FruitB !");
¡¡}
¡¡public void doSomething() {
¡¡¡¡System.out.println(" FruitB do something ...");
¡¡}
}
// ³éÏ󹤳§·½·¨
public interface Abstrac
Ïà¹ØÎĵµ£º
Java³ÌÐòÔ±µÄÍÆ¼öÔĶÁÊé¼®¡·
JavaEye (http://www.javaeye.com)
×÷ΪJava³ÌÐòÔ±À´Ëµ£¬×îÍ´¿àµÄÊÂÇéιýÓÚ¿ÉÒÔÑ¡ÔñµÄ·¶Î§Ì«¹ã£¬¿ÉÒÔ¶ÁµÄÊéÌ«¶à£¬ÍùÍùÈÝÒ×ÎÞËùÊÊ´Ó¡£ÎÒÏë¾ÍÎÒ×Ô¼º¶Á¹ýµÄ¼¼ÊõÊé¼®ÖÐÌôÑ¡³öÀ´Ò»Ð©£¬°´ÕÕѧϰµÄÏȺó˳Ðò£¬ÍƼö¸ø´ó¼Ò£¬ÌرðÊÇÄÇЩÏë²»¶ÏÌá¸ß×Ô¼º¼¼ÊõˮƽµÄJava³ÌÐòÔ±ÃÇ¡£
Ò»¡¢Java±à³ÌÈëÃÅÀà ......
ÒÔÏÂÊǼÆËãÁ½¸öÊýÎó²îÊÇ·ñÔÚ10% £¬Èç¹ûÔÚ10%ÒÔÄÚÊÇÕý³££¬ÆäËûÊDz»Õý³££¬ÓýÏСµÄÊý*10%+ÓýÏСµÄÊý=ÓýÏСµÄÊý*1.1%
double costNum =2;//µç·Ñƽ¾ùÈÕµçÁ¿
double amountNum =3; //µçÁ¿Æ½¾ùÈÕµçÁ¿
if(amountNum ......
1¡¢ ÀàÐÍ×°ÔØ¡¢Á´½ÓÓë³õʼ»¯
JavaÐéÄâ»úͨ¹ý×°ÔØ¡¢Á´½ÓºÍ³õʼ»¯Ò»¸öJavaÀàÐÍ£¬Ê¹¸ÃÀàÐÍ¿ÉÒÔ±»ÕýÔÚÔËÐеÄJava³ÌÐòËùʹÓá£ÆäÖУ¬×°ÔؾÍÊǰѶþ½øÖƵÄJavaÀàÐͶÁÈëJavaÐéÄâ»úÖУ¬¶øÁ¬½Ó¾ÍÊǰÑÕâÖÖÒѾ¶ÁÈëÐéÄâ»úµÄ¶þ½øÖÆÐÎʽµÄÀàÐÍÊý¾ÝºÏ²¢µ½ÐéÄâ»úµÄÔËÐÐ״̬ÖÐÈ¥¡£Á¬½Ó½×¶Î·ÖÁËÈý¸ö²½Ö裺Ñé ......
½ñÌìѧϰÁËapplet²¼¾ÖÎÊÌ⣺
°´Å¥¡¢±êÇ©ÊÇÔõÑù¼ÓÈëµ½applet³ÌÐò(ÈÝÆ÷)µ±ÖÐÈ¥µÄÄØ£¿
ÐèÒªÓõ½²¼¾ÖÈÝÆ÷¹ÜÀíÆ÷(LayoutManager)£ºËüÓÃÓÚÐÖúÈÝÆ÷È·¶¨¼ÓÈëµÄ×é¼þ(°´Å¥µÈ)Ó¦¸Ã·ÅÖõÄλÖÃ
awtÌṩÁË4Öг£ÓõIJ¼¾ÖÈÝÆ÷¹ÜÀíÆ÷
>>FlowLayout
>>BorderLayout
>>GridLayout
>>CardLayout
appletĬÈÏÊ ......
// ÕûÊýµ½×Ö½ÚÊý×éת»»
public static byte[] int2bytes(int n) {
byte[] ab = new byte[4];
ab[0] = (byte) (0xff & n);
ab[1] = (byte) ((0xff00 & n) >> 8);
ab[2] = (byte) ((0xff0000 & n) >> 16);
ab[3] = (byte) ((0xff000000 & n) >> 24);
return ab ......