Java design Pattern _ Builder mode

Source: Internet
Author: User


/** *  */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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.