设计模式-Builder构建者模式

个人理解

当对象的构造过程变得很复杂的时候,参数很多,通过构造函数会产生大量冗余代码,不好维护,而我们又不希望调用者通过set的方式来构造对象(封装,隐藏),因为这样很容易出问题,于是,可以把整个构造的过程封装在一个构造类里,可以通过构造类实现更加精细的构造,并且职责明确

意图

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

适用性

当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。

当构造过程必须允许被构造的对象有不同的表示时。

实现(java)

package com.zlf.pattern;

public class BuliderDemo {
 
 private int a;
 private int b;
 
 private BuliderDemo(Builder builder){
  this.a = builder.a;
  this.b = builder.b;
 }
 public static class Builder{
  private int a;
  private int b;
  
  public Builder(){
   
  }
  public Builder buildA(int a){
   this.a = a;
   return this;
  } 
  
  public Builder buildB(int b){
   this.b = b;
   return this;
  } 
  
  public BuliderDemo create(){
   return new BuliderDemo(this);
  }
  
 }
 
 public static void main(String[] args){
  BuliderDemo test = new BuliderDemo.Builder().buildA(1).buildB(2).create();
  System.err.println(test.a);
 }
 
}

?

时间: 2024-11-05 13:43:02

设计模式-Builder构建者模式的相关文章

设计模式:构建器模式(Builder)

构建器模式有点类似于之前的抽象工厂模式,但比抽象工厂模式更强大,构建器模式可以看做由两部分组成,一是builder,二是director,builder的基本思想就是抽象工厂,而director的存在是为了使得对builder的使用更加灵活,下面是builder的代码示例: class A { public: int i; A() : i(1) {}; }; class B { public: char c; B() : c('a') {}; }; class AB { public: A a;

Java设计模式:Builder(构建器)模式

基本概念 Builder模式是一步一步创建一个复杂对象的创建型模式.该模式将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来. 应用场景 对象创建过程比较复杂,或对创建顺序或组合有依赖(经典Builder模式,可参阅GOF<设计模式>). 创建对象时所需参数较多,且包含较多可选参数(变种Builder模式,可参阅<Effective Java>构建器小节). 示例代码 本节侧重变种Builder模式,示例代码如下: public class RobustPerso

java设计模式4--建造者模式(Builder)

本文地址:http://www.cnblogs.com/archimedes/p/java-builder-pattern.html,转载请注明源地址. 建造者模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 概述 当系统准备为用户提供一个内部结构复杂的对象时,就可以使用生成器模式,使用该模式可以逐步地构造对象,使得对象的创建更具弹性.生成器模式的关键是将一个包含有多个组件对象的创建分成若干个步骤,并将这些步骤封装在一个称作生成器的接口中. 适用性 1.当创建复杂

构建者模式(Builder)

1.定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2.结构 Builder:构建者接口,定义创建一个Product对象所需的各个部件的操作 ConcreteBuilder:具体的生成器表现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法 Director:指导者,主要用来调用Builder接口,以一个统一的过程来创建所需要的Product对象 Product:产品,表示被生成器构建的复杂对象,包含多

构建者模式-Builder

构建者模式-Builder Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来 Builder接口 定义了构建者的方法. public interface Builder { void makeTitle(String title); void makeString(String str); void makeItems(String[]

一天一个设计模式——Builder建造者模式

一.模式说明 在现实世界中,当我们要构造一个大型工程时(建一个大楼),通常的做法是先建造工程的每个独立部分,然后再逐步构造完成(先打地基,再搭框架,最后逐层累造).在程序设计领域,构造一个复杂的类时(或一些具有类似结构的复杂类时),也可以采用类似的思想:如果要创建一个用于构造文档的类(或者是word,或者是html),虽然具体的文档有不同的结构,但是构造这些对象有相同的套路:创建标题,创建内容,创建条目,结束文档.Builder建造者模式就是用来构造复杂的类的. 二.模式类图 三.模式时序图 四

设计模式之中介者模式(Mediator)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以

设计模式05-建造者模式

1. 概念 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 . 适用性: 1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时.  2.当构造过程必须允许被构造的对象有不同的表示时. 参与者: 1.Builder为创建一个Product对象的各个部件指定抽象接口. 2.ConcreteBuilder实现Builder的接口以构造和装配该产品的各个部件.定义并明确它所创建的表示.提供一个检索产品的接口. 3.Director 构造一个使用Builder接

设计模式 (创建型模式)

  设计模式 创建型模式 1.创建型模式         创建型模式,包括了5种设计模式,分别是 Singleton (单例模式),Factory(工厂模式),AbstractFactory(抽象工厂模式),Builder(创建者),Prototype(原型) ,创建型模式主要作用就是抽象了实例化过程.他们帮助一个系统独立于如何创建.组合和表示他的那些对象.一个类创建型模式使用继承改变被实例化的类.而一个对象创建型模式将实例化委托给另一个对象. 2.Singleton (单例模式)      单