设计模式之Builder模式

原创 2018年04月16日 23:13:45

概述

在平时开发或者开别人源码的时候,都会看到很多的Builder,它把构建的细节完全隐蔽起来,在用户不知道构建细节的情况下把一个对象创建了出来,就很像建房子一样,我们只需要提供材料、工钱和设计图,建设过程全部交由建设工程师做,你完全可以不用知道怎么做,最后一个跟设计图一样的房子就会出现在面前(当然需要时间)。

Builder模式

例子

//房子构建类
public class HourseBuilder {

    public double price;
    public String design;
    public String material;
    public String place;

    //必须要的参数放在构造函数初始化
    public HourseBuilder(String place) {
        this.place=place;
    }

    // 工钱
    public HourseBuilder price(double price) {
        this.price = price;
        return this;
    }

    // 设计图
    public HourseBuilder design(String design) {
        this.design = design;
        return this;
    }

    // 材料
    public HourseBuilder material(String material) {
        this.material = material;
        return this;
    }
    //竣工
    public Hoursebuilder(){
        return new Hourse(this);
    }
}


//房子类
public class Hourse{
    private double price;
    private String design;
    private String material;
    private String place;

    public Hourse(HourseBuilder builder){
        this.price=builder.price;
        this.design=builder.design;
        this.material=builder.material;
        this.place=builder.place;
    }
}


//客户端
    Hourse hourse=new HourseBuilder("中国")
                .price(2000000000)
                .design("复式")
                .material("材料")
                .builder();

以上便是Builder模式的简单使用方法,还可以使用一个专门存放参数的类,将传进来的参数封装在这个类中。

优点:客户端不必知道产品内部的细节,并且构建者之间是独立的,可在构建过程中进行细化。能够将一个复杂对象将构造和表示分离开。
缺点:由于构建过程是隐蔽的,所以有可能造成构建结果跟预想的有偏差。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/A_sendy/article/details/79968322

Javascript 设计模式之修饰模式【专家辅导】

-
  • 1970年01月01日 08:00

设计模式学习之Builder模式

建造者模式(Builder Pattern),是创造性模式之一,Builder 模式的目的则是为了将对象的构建与展示分离。Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道...
  • hjxgood
  • hjxgood
  • 2017-04-21 15:09:57
  • 738

创建型设计模式之Builder模式

1 Builder模式概念 1.1 介绍   Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构...
  • chenliguan
  • chenliguan
  • 2017-04-30 11:28:05
  • 755

java中Builder设计模式 原理和好处

Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成。那么,在实际的开发过程中,我们哪些地方适合用到Builder模式呢?其中使用Builder模式来替代...
  • qq_23901559
  • qq_23901559
  • 2015-10-23 23:20:26
  • 2047

Android设计模式——Builder模式

什么是Builder模式呢。你通过搜索,会发现大部分网上的定义都是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 但是看完这个定义,并没有什么卵用,你依然...
  • jie1991liu
  • jie1991liu
  • 2015-11-04 17:19:20
  • 8291

builder设计模式的使用以及优缺点

嗯,大家是否在开发过程中,经常遇到一个类拥有许多的属性呢。为了使这个类的使用便捷,我们通常情况下会给这个类多个构造器以及一个默认的无参数构造器。 但是当参数的个数达到四个或者更多的时候,你是否会经常...
  • u010469003
  • u010469003
  • 2014-04-03 15:16:03
  • 2004

Java设计模式--Builder模式

Java设计模式–Builder模式标签(空格分隔): 设计模式本文是遇到实际问题想办法解决,并没有详细解释理论,博主水平有限.1.问题提出问题的提出来源于实际代码中遇到的问题,下面讲述问题.公司做一...
  • u012706811
  • u012706811
  • 2016-08-13 18:08:02
  • 1856

【java设计模式】之 建造者(Builder)模式

我们还是举上一节的例子:生产汽车。上一节我们通过模板方法模式控制汽车跑起来的动作,那么需求是无止境的,现在如果老板又增加了额外的需求:汽车启动、停止、鸣笛引擎声都由客户自己控制,他想要什么顺序就什么顺...
  • eson_15
  • eson_15
  • 2016-05-06 08:59:09
  • 5786

Android开发中无处不在的设计模式——Builder模式

上一篇文章介绍了单例模式,这一篇继续介绍一个常见的模式——Builder模式。那么什么是Builder模式呢。你通过搜索,会发现大部分晚上的定义都是 将一个复杂对象的构建与它的表示分离,使得同样的...
  • sbsujjbcy
  • sbsujjbcy
  • 2015-10-18 10:16:33
  • 5375

Java设计模式——Builder模式

builder模式的使用目的是为了将构建复杂对象的过程和它的部件解耦。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。...
  • u013761665
  • u013761665
  • 2015-12-11 13:47:23
  • 3115
收藏助手
不良信息举报
您举报文章:设计模式之Builder模式
举报原因:
原因补充:

(最多只允许输入30个字)