/** * */package com.wangbiao.design.builder;import java.util.arraylist;import java.util.iterator;import java.util.list;/** * @Title: product.java * @Package com.wangbiao.design.builder * @Description: todo * @author wangbiao * @date 2014-9-26 Morning 10:06:53 * @version V1.0 */public class product { list<string> parts = new ArrayList<String> (); Public void addpart (String part) { parts.add (part ); } public void display () { Iterator<String> iter = Parts.iterator (); &Nbsp; while (Iter.hasNext ()) { system.out.println (Iter.next ()); } }}/** * */package com.wangbiao.design.builder;/** * @ title: builder.java * @Package com.wangbiao.design.builder * @Description: todo * @author wangbiao * @date 2014-9-26 Morning 10 :16:28 * @version V1.0 */public abstract class Builder { public abstract void builderparta (); &NBSP;&NBSP;PUBLIC&NBSP;ABSTRACT&NBSP;VOID&NBSP;BULDERPARTB (); public abstract product getresult ();} /** * */package com.wangbiao.design.builder;/** * @Title: concretebuildera.java * @Package com.wangbiao.design.builder * @Description: todo * @author wangbiao * @date 2014-9-26 Morning 10 :18:47 * @version V1.0 */public class ConcreteBuilderA extends Builder { private product product = new product (); /* (Non-javadoc) * @see Com.wangbiao.design.builder.builder#builderparta () */ @ Override public void builderparta () { // TODO Auto-generated method stub product.addpart ("large screen"); } /* (Non-javadoc) * @see COM.WANGBIAO.DESIGN.BUILDER.BUILDER#BULDERPARTB () */ @ OVERRIDE&NBSP;&NBSP;&NBSP;&NBSP;PUBLIC&NBSP;VOID&NBSP;BULDERPARTB () { // TODO Auto-generated method stub product.addpart ("Metal Body"); } /* (Non-Javadoc) * @see com.wangbiao.design.builder.builder#getresult () */ @Override public product getresult () { // todo auto-generated method stub return product; }}/** * */package com.wangbiao.design.builder;/** * @Title: concretebuilderb.java * @Package com.wangbiao.design.builder * @ description: todo * @author wangbiao * @date 2014-9-26 Morning 10:19:05 * @version v1.0 */public class concretebuilderb extends builder { private product product = new product (); /* (non-javadoc) * @see Com.wangbiao.design.builder.builder#builderparta () */ @ Override public void builderparta () { // TODO Auto-generated method stub product.addpart ("small Screen"); } /* (Non-Javadoc) * @see&NBSP;COM.WANGBIAO.DESIGN.BUILDER.BUILDER#BULDERPARTB () */ @Override &NBSP;&NBSP;&NBSP;&NBSP;PUBLIC&NBSP;VOID&NBSP;BULDERPARTB () { // TODO Auto-generated method stub product.addpart ("Plastic Body"); } /* ( Non-javadoc) * @see com.wangbiao.design.builder.builder#getresult () */ @Override public product getresult () { // TODO Auto-generated method stub return product; }} /** * */package com.wangbiao.design.builder;/** * @Title: Director.java * @Package &NBSP;COM.WANGBIAO.Design.builder * @Description: todo * @author wangbiao * @date 2014-9-26 Morning 10:19:19 * @version V1.0 */public Class director { public void createproduct (Builder Builder) { Builder.builderparta (); &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;BUILDER.BULDERPARTB (); }}/** * */package com.wangbiao.design.builder;/** * @Title: client.java * @Package com.wangbiao.design.builder * @Description: todo * @author wangbiao * @date 2014-9-26 Morning 10:16:10 * @version V1.0 */public class Client { /** * @param Args */ public static void main (String[] args) { // todo auto-generated method stub /* * The benefit of the builder model is that it separates the construction code from the presentation code and hides the construction process. The * builder pattern is useful for creating complex objects with logic that is independent of the creation process and assembly method . * * / director director = new director (); builder buildera = new concretebuildera (); builder builderb = new concretebuilderb (); director.createproduct ( Buildera); product p1 = buildera.getresult (); p1.display (); director.createproduct (Builderb); product p2 = builderb.getresult (); p2.display (); }}
Java design Pattern _ Builder mode