¡¶JAVAÓëģʽ¡·µÚ5Ìì¨D½¨Ôìģʽ (¶þ)

2014-11-24 08:22:23 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 1
eteBuilder
*/
public class ConcreteBuilder implements Builder {

private Product product = new Product();

/**
* ²úÆ·Áã¼þ½¨Ôì·½·¨1
*/
@Override
public void buildPart1() {
// ¹¹½¨²úÆ·µÄµÚÒ»¸öÁã¼þ
product.setPart1("±àºÅ£º9527");
}

/**
* ²úÆ·Áã¼þ½¨Ôì·½·¨2
*/
@Override
public void buildPart2() {
// ¹¹½¨²úÆ·µÄµÚ¶þ¸öÁã¼þ
product.setPart2("Ãû³Æ£ºXXX");
}

/**
* ²úÆ··µ»¹·½·¨
*/
@Override
public Product retrieveResult() {
return product;
}

}
package com.bankht.Builder;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÉÏÎç10:09:33
*
* @Àà˵Ã÷ £º¾ßÌ彨ÔìÕßÀàConcreteBuilder
*/
public class ConcreteBuilder implements Builder {

private Product product = new Product();

/**
* ²úÆ·Áã¼þ½¨Ôì·½·¨1
*/
@Override
public void buildPart1() {
// ¹¹½¨²úÆ·µÄµÚÒ»¸öÁã¼þ
product.setPart1("±àºÅ£º9527");
}

/**
* ²úÆ·Áã¼þ½¨Ôì·½·¨2
*/
@Override
public void buildPart2() {
// ¹¹½¨²úÆ·µÄµÚ¶þ¸öÁã¼þ
product.setPart2("Ãû³Æ£ºXXX");
}

/**
* ²úÆ··µ»¹·½·¨
*/
@Override
public Product retrieveResult() {
return product;
}

}

µ¼ÑÝÕßÀàDirector

[java]
package com.bankht.Builder;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÉÏÎç10:12:10
*
* @Àà˵Ã÷ £ºµ¼ÑÝÕßÀàDirector
*/
public class Director {
/**
* ³ÖÓе±Ç°ÐèҪʹÓõĽ¨ÔìÆ÷¶ÔÏó
*/
private Builder builder;

/**
* ¹¹Ôì·½·¨£¬´«È뽨ÔìÆ÷¶ÔÏó
*
* @param builder
* ½¨ÔìÆ÷¶ÔÏó
*/
public Director(Builder builder) {
this.builder = builder;
}

/**
* ²úÆ·¹¹Ôì·½·¨£¬¸ºÔðµ÷Óø÷¸öÁã¼þ½¨Ôì·½·¨
*/
public void construct() {
builder.buildPart1();
builder.buildPart2();
}
}
package com.bankht.Builder;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÉÏÎç10:12:10
*
* @Àà˵Ã÷ £ºµ¼ÑÝÕßÀàDirector
*/
public class Director {
/**
* ³ÖÓе±Ç°ÐèҪʹÓõĽ¨ÔìÆ÷¶ÔÏó
*/
private Builder builder;

/**
* ¹¹Ôì·½·¨£¬´«È뽨ÔìÆ÷¶ÔÏó
*
* @param builder
* ½¨ÔìÆ÷¶ÔÏó
*/
public Director(Builder builder) {
this.builder = builder;
}

/**
* ²úÆ·¹¹Ôì·½·¨£¬¸ºÔðµ÷Óø÷¸öÁã¼þ½¨Ôì·½·¨
*/
public void construct() {
builder.buildPart1();
builder.buildPart2();
}
}

¡¡¡¡¿Í»§¶ËÀàClient

[java]
package com.bankht.Builder;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÉÏÎç10:12:29
*
* @Àà˵Ã÷ £º¿Í»§¶ËÀàClient
*/
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.retrieveResult();
System.out.println(product.getPart1());
System.out.println(product.getPart2());
}
}
package com.bankht.Builder;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÉÏÎç10:12:29
*
* @Àà˵Ã÷ £º¿Í»§¶ËÀàClient
*/
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.retrieveResult();
System.out.println(product.getPart1());
System.out.println(product.getPart2());
}
}
ʱÐòͼ

\

¡¡¡¡¿Í»§¶Ë¸ºÔð´´½¨µ¼ÑÝÕߺ;ßÌ彨ÔìÕß¶ÔÏó¡£È»ºó£¬¿Í»§¶Ë°Ñ¾ßÌ彨ÔìÕß¶ÔÏ󽻸øµ¼ÑÝÕߣ¬µ¼ÑÝÕß²Ù×÷¾ßÌ彨ÔìÕߣ¬¿ªÊ¼´´½¨²úÆ·¡£µ±²úÆ·Íê³Éºó£¬½¨ÔìÕ߰ѲúÆ··µ»¹¸ø¿Í»§¶Ë¡£

¡¡¡¡°Ñ´´½¨¾ßÌ彨ÔìÕß¶ÔÏóµÄÈÎÎñ½»¸ø¿Í»§¶Ë¶ø²»Êǵ¼ÑÝÕß¶ÔÏó£¬ÊÇΪÁ˽«µ¼ÑÝÕß¶ÔÏóÓë¾ßÌ彨ÔìÕß¶ÔÏóµÄñîºÏ±ä³É¶¯Ì¬µÄ£¬´Ó¶øÊ¹µ¼ÑÝÕß¶ÔÏó¿ÉÒÔ²Ù×ÝÊý¸ö¾ßÌ彨ÔìÕß¶ÔÏóÖеÄÈκÎÒ»¸ö¡£

ʹÓó¡¾°
¡¡¡¡¼ÙÉèÓÐÒ»¸öµç×ÓÔÓ־ϵͳ£¬¶¨ÆÚµØÏòÓû§µÄµç×ÓÓʼþÐÅÏä·¢Ë͵ç×ÓÔÓÖ¾¡£Óû§¿ÉÒÔͨ¹ýÍøÒ³¶©Ôĵç×ÓÔÓÖ¾£¬Ò²¿ÉÒÔͨ¹ýÍøÒ³½áÊø¶©ÔÄ¡£µ±¿Í»§¿ªÊ¼¶©ÔÄʱ£¬ÏµÍ³·¢ËÍÒ»¸öµç×ÓÓʼþ±íʾ»¶Ó­£¬µ±¿Í»§½áÊø¶©ÔÄʱ£¬ÏµÍ³·¢ËÍÒ»¸öµç×ÓÓʼþ±íʾ»¶ËÍ¡£±¾Àý×Ó¾ÍÊÇÕâ¸öϵͳ¸ºÔð·¢ËÍ¡°»¶Ó­¡±ºÍ¡°»¶ËÍ¡±ÓʼþµÄÄ£¿é¡£

¡¡¡¡ÔÚ±¾ÀýÖУ¬²úÆ·Àà¾ÍÊÇ·¢¸øÄ³¸ö¿Í»§µÄ¡°»¶Ó­¡±ºÍ¡°»¶ËÍ¡±Óʼþ£¬ÈçÏÂͼËùʾ¡£

\

¡¡¡¡ËäÈ»ÔÚÕâ¸öÀý×ÓÀïÃæ¸÷¸ö²úÆ·Àà¾ùÓÐÒ»¸ö¹²Í¬µÄ½Ó¿Ú£¬µ«Õâ½ö½öÊDZ¾Àý×ÓÌØÓе쬲¢²»´ú±í½¨ÔìģʽµÄÌØµã¡£½¨Ôìģʽ¿ÉÒÔÓ¦Óõ½¾ßÓÐÍêÈ«²»Í¬½Ó¿ÚµÄ²úÆ·ÀàÉÏ¡£´ó¶à