• 建造者模式


    建造者模式可以将一个产品的内部表象(产品的零件)与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。

    产品类:

    package com.javapatterns.builder;

    public class Product
    {
        
    public Product()
        
    {
           
    // System.out.println("product is initing.");
        }

    }

     

    抽象建造方法:
    abstract public class Builder
    {
        
    public abstract void buildPart1();

        
    public abstract void buildPart2();

        
    public abstract Product retrieveResult();
    }
     

     

    具体的建造类:产品的零件制造

    public class ConcreteBuilder extends Builder
    {
        
    /**
         * @label Creates
         
    */

        
    private Product product = new Product() ;

        
    public void buildPart1()
        
    {
            System.out.println(
    "build part one.");
        }


        
    public void buildPart2()
        
    {
            System.out.println(
    "build part two.");
        }


        
    public Product retrieveResult()
        
    {
            
    return product;
        }

    }

     

    产品的建造过程:

    public class Director
    {
        
    /**
         * 
    @link aggregation
         * @directed
         * @clientRole builder
    */

        
    private Builder builder;

        
    public Director(Builder builder)
        
    {
            
    this.builder = builder;
        }


        
    public void construct()
        
    {
            builder 
    = new ConcreteBuilder();

            builder.buildPart1();

            builder.buildPart2();

            builder.retrieveResult();

            
    //continue with other code
        }

    }

     

    测试

    public class Client
    {
        
    /**
         * 
    @link aggregation
         * @directed 
         
    */

        
    private static Director director;

        
    private static Builder builder = new ConcreteBuilder();
            
        
    public void requestBuild()
        
    {
           
    // director = new Director(builder);
        }

        
         
    public static void main(String[] args) 
        
    {
            director 
    = new Director(builder);
            director.construct();
        }


    }

     

  • 相关阅读:
    [转]中英文停止词表(stopword)
    [转]Memcached常用命令及使用说明
    Java导出excel并下载功能
    Java List 汉字进行排序
    Tengine笔记3:Nginx的反向代理和健康状态检查
    Tengine笔记2:通过IP、域名、端口实现虚拟主机
    Tengine笔记1:安装Tengine和Tengine说明
    Linux学习笔记6-Linux根目录下各个目录的作用
    Linux学习笔记5-搭建内网Yum源
    Python学习笔记10-Python MysqlHelper ,MySql 辅助类
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1933240.html
Copyright © 2020-2023  润新知