06建造者模式builder(代码片段)

未来_我来 未来_我来     2022-11-12     721

关键词:

一、什么是建造者模式

  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... 查看详情