码迷,mamicode.com
首页 > 其他好文 > 详细

建造者模式

时间:2020-06-21 12:12:42      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:参与者   style   com   组成   nta   表示   抽象   分离   对象   

名称:

建造者模式(Builder Pattern)

 

问题:

Separate the construction of a complex object from its representation so that the same construction process can create different representations.

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

 

解决方案:

    

1、 模式的参与者

    1、Builder

    -为创建一个Product对象的各个部件指定抽象接口。

    2、ConcreteBuilder

    -实现Builder的接口以构造和装配该产品的各个部件。

    -定义并明确他所创建的表示。

   -提供一个检索产品的接口。

    3、Director

    -构造一个使用Builder接口的对象。

    4、Product

    -表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。

    -包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

2.实现方式

abstract class Builder
{

    protected Product product=new Product();
    public abstract void buildPartA();
    public abstract void buildPartB();
    public abstract void buildPartC();
    public Product getProduct()
    {
        return product;
    }
}
public class ConcreteBuilder extends Builder
{
    public void buildPartA()
    {
        product.setPartA("set PartA");
    }
    public void buildPartB()
    {
        product.setPartB("set PartB");
    }
    public void buildPartC()
    {
        product.setPartC("set PartC");
    }
}
class Director
{
    private Builder builder;
    public Director(Builder builder)
    {
        this.builder=builder;
    }
    public Product construct()
    {
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getProduct();
    }
}
class Product
{
    private String partA;
    private String partB;
    private String partC;
    public void setPartA(String partA)
    {
        this.partA=partA;
    }
    public void setPartB(String partB)
    {
        this.partB=partB;
    }
    public void setPartC(String partC)
    {
        this.partC=partC;
    }
    public void show()
    {
       
    }
}

 

Builder模式着重于一步步构造一个复杂对象。通常情况下,由具体生成器生成的产品,它们的表示相差很大,以至于给不同的产品以公共父类没有太大的意义。

 

参考资料

《设计模式:可复用面向对象软件的基础》

 

建造者模式

标签:参与者   style   com   组成   nta   表示   抽象   分离   对象   

原文地址:https://www.cnblogs.com/diameter/p/13171675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!