关键词:
一、什么是建造者模式
Builder模式也叫建造者模式或者生成器模式, 是由GoF提出的23种设计模式中的一种。
Builder模式是一种对象创建型模式之一,用来 隐藏复合对象的创建过程,它把复合对象的创建 过程加以抽象,通过子类继承和重载的方式,动 态地创建具有复合属性的对象。
二、建造者模式的结构
三、建造者模式应用场景
- 对象的创建:Builder模式是为对象的创建而设计的模式
- 创建的是一个复合对象:被创建的对象为一个具有复合属性的复合对象
- 关注对象创建的各部分的创建过程:不同的工厂(这里指builder生成器)对产品属性有不同的创建方法
房子
1 /* 2 * 房子 3 */ 4 public class House 5 // 地板 6 private String floor; 7 // 墙 8 private String wall; 9 // 屋顶 10 private String housetop; 11 12 public String getFloor() 13 return floor; 14 15 16 public void setFloor(String floor) 17 this.floor = floor; 18 19 20 public String getWall() 21 return wall; 22 23 24 public void setWall(String wall) 25 this.wall = wall; 26 27 28 public String getHousetop() 29 return housetop; 30 31 32 public void setHousetop(String housetop) 33 this.housetop = housetop; 34 35
工程队
1 /* 2 * 工程队 3 */ 4 public interface HouseBuilder 5 //修地板 6 public void makeFloor(); 7 //修墙 8 public void makeWall(); 9 //修屋顶 10 public void makeHousetop(); 11 public House getHouse(); 12
平房工程队 实现工程队
1 /* 2 * 平房工程队 3 */ 4 public class PingFangBuilder implements HouseBuilder 5 House house = new House(); 6 7 public void makeFloor() 8 house.setFloor("平房-->地板"); 9 10 11 public void makeHousetop() 12 house.setHousetop("平房-->房顶"); 13 14 15 public void makeWall() 16 house.setWall("平房-->墙"); 17 18 19 public House getHouse() 20 return house; 21 22
测试
1 public class MainClass 2 3 public static void main(String[] args) 4 // //客户直接造房子 5 // House house = new House(); 6 // house.setFloor("地板"); 7 // house.setWall("墙"); 8 // house.setHousetop("屋顶"); 9 10 11 //由工程队来修 12 HouseBuilder builder = new GongyuBuilder(); 13 //设计者来做 14 HouseDirector director = new HouseDirector(); 15 director.makeHouse(builder); 16 17 House house = builder.getHouse(); 18 System.out.println(house.getFloor()); 19 System.out.println(house.getWall()); 20 System.out.println(house.getHousetop()); 21 22
设计
1 //设计者 2 public class HouseDirector 3 4 public void makeHouse(HouseBuilder builder) 5 builder.makeFloor(); 6 builder.makeWall(); 7 builder.makeHousetop(); 8 9
公寓工程队 实现工程队
1 //公寓建造者 2 public class GongyuBuilder implements HouseBuilder 3 House house = new House(); 4 5 public House getHouse() 6 return house; 7 8 9 public void makeFloor() 10 house.setFloor("公寓-->地板"); 11 12 13 public void makeHousetop() 14 house.setHousetop("公寓-->房顶"); 15 16 17 public void makeWall() 18 house.setWall("公寓-->墙"); 19 20
设计模式总结篇系列:建造者模式(builder)(代码片段)
...,可以将其分为如下两种形式。一、通过Client、Director、Builder和Product形成的建造者模式Builder负责Product类对象的具体过程构建,Directo 查看详情
设计模式之建造者模式——builder(代码片段)
一、概述Builder模式,中文名为建造者模式,又名生成器模式、构建者模式等,是创建型设计模式之一。用于将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1.适用性:对象的创建比较复杂、有... 查看详情
设计模式-建造者模式(builder)(代码片段)
简介:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程创建出不同的表示。结构图:优点:使得创建代码和表示代码分离,建造者隐藏了该产品是如何组装的,所以若需要改变一个产品内部的表示,只需要再定义... 查看详情
设计模式之建造者模式(代码片段)
前言建造者模式也是常用的设计模式,Lombok的@Builder就是一个典型的应用。googleguavacache创建cache就只能通过builder方式建造者模式建造者模式有四个角色:1product2抽象builder3实现builder4director建造者模式是的创建对象算法独立,调用... 查看详情
设计模式之建造者模式(builder)(代码片段)
...常麻烦。所以才有了建造者模式。直接上代码看:publicclassbuilderPattenprivateStringlength;privateStringwidth;privateStringcolor;privateStringprice;privateStringlogo;//构造函数,传入的是内部类的一个对象privatebuilderPatten(carBuilderbuilder)this.color=builder.color;... 查看详情
一天一个设计模式-建造者模式(builder)(代码片段)
前言建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internalrepresentation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。(一).产品的内部表象一个产品常有不同的组成... 查看详情
建造者模式(代码片段)
...对象的过程和组成对象的部件解耦。包含如下几种角色:Builder:抽象建造者(Builder)ConcreteBuilder:具体建造者(CommonBuilder、SuperBuilder)Director:指挥者(Director)Product:产品角色(Role) 1、定义角色类相关属性/* 查看详情
建造者模式---builder(代码片段)
建造者模式定义:GOF给建造模式的定义为:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.这句话说得很抽象,不好理解,其实它的意思可以理解为:将构造复杂对象的过程和... 查看详情
编程思想设计模式创建模式creational建造者模式builder(代码片段)
Python版https://github.com/faif/python-patterns/blob/master/creational/builder.py #!/usr/bin/python#-*-coding:utf-8-*-"""*Whatisthispatternabout?Itdecouplesthecreationofacomplexobjectanditsreprese 查看详情
23种设计模式之建造者模式(代码片段)
...复杂物体的构建与表现相分离。4*組成角色:5*1)建造者(Builder):負責定義用來生成實例的接口(API)6*2)具体的建造者(ConcreateBuilder):负责实现Builder角色定义的接口实现类。7*针对不同的业务逻辑,具体化复杂对象的各部分的创建。... 查看详情
gof设计模式(05)建造者模式(代码片段)
简介一、定义1、概念建造者模式(Builder):将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。2、理解将客户端与包含多个组成部分的复杂对象的创建过程... 查看详情
建造者模式(代码片段)
建造者模式建造者模式(BuilderPattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个Builder类会一步一步构造最终的对象。该Builder类是独立... 查看详情
创建者模式-建造者模式(代码片段)
...建过程可以创建不同的表示。二、机构模式图1.建造者(Builder):为创建一个产品对象的各个部件指定抽象接口2.具体建造者(ConcreteBuider):实现Builder的接口,以构建和装配该产品的各个部分,定义并明确它所创建的表示,并提... 查看详情
charpter13建造者模式(代码片段)
建造者模式简介建造者模式(builder),又叫生成器模式,将一个复杂对象的构造与它的表示分离,使得同样的建造过程可以创建不同的表示。如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到他们,... 查看详情
设计模式之建造者模式(代码片段)
...于创建型模式,它提供了一种创建对象的最佳方式。一个Builder类会一步一步构造最终的对象。该Builder类是独立于其他对象的。 二 介绍 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程 查看详情
建造者模式(代码片段)
概述Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动... 查看详情
建造者模式(代码片段)
...造者模式标签(空格分隔):设计模式什么是建造者模式Builder模式,建造者模式也叫生成器模式,是GoF提出的23种设计模式中的一种,是一种对象的创建型模式,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象... 查看详情
设计模式之建造者模式(代码片段)
...样的构建过程可以创建不同的表示。 组成: 1、builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。 2、ConcreteBuilder... 查看详情