关键词:
分类
设计模式总体划分为三大类:
创建型模式:工厂模式,抽象工厂模式,单例模式,建造者模式,原型模式模式,共5种。
结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,共7中。
行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式,共11种。
建造者模式(生成器模式)
GoF:建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
窝草,好抽象,那举个栗子吧
某汽车生产车间,一号汽车装配线,将各种零件按照工序组装在一起,生产出来一种型号的汽车,零件一变,就生产出另一种型号的汽车了。
建造者模式的本质:流程不变,但每个流程实现的具体细节则是经常变化的。
建造者模式保证了程序流程不会变化,即不会增加、也不会遗漏或者产生流程次序错误。
建造者模式又叫生成器模式。
组成部分
Product:复杂产品对象。
Builder:一个抽象接口,规范创建Product的组成成分。只暴露组成部分的创建接口,不涉及具体创建细节,依赖Product。
ConcreteBuilder:实现Builder接口,完成Product各个组成部分的具体创建细节,依赖Product。
Director:负责创建一个Product,依赖Builder,Product。
代码示例
Product:Person
package cn.leo.demo.mode.creator; public class Person { private String head; private String body; private String feet; public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getFeet() { return feet; } public void setFeet(String feet) { this.feet = feet; } }
Builder:PersonBuilder
package cn.leo.demo.mode.creator;
public interface PersonBuilder {
void buildHead();
void buildBody();
void buildFeet();
Person buildPerson();
}
ConcreteBuilder:ManBuilder,WomenBuilder
package cn.leo.demo.mode.creator;
public class ManBuilder implements PersonBuilder{
private Person person;
public ManBuilder(Person person) {
this.person = person;
}
@Override
public void buildHead() {
person.setHead("强壮男人的Head");
}
@Override
public void buildBody() {
person.setHead("强壮男人的Body");
}
@Override
public void buildFeet() {
person.setHead("强壮男人的Feet");
}
@Override
public Person buildPerson() {
return this.person;
}
}
package cn.leo.demo.mode.creator;
public class WomenBuilder implements PersonBuilder{
private Person person;
public WomenBuilder(Person person) {
this.person = person;
}
@Override
public void buildHead() {
person.setHead("温柔女人的Head");
}
@Override
public void buildBody() {
person.setHead("温柔女人的Body");
}
@Override
public void buildFeet() {
person.setHead("温柔女人的Feet");
}
@Override
public Person buildPerson() {
return this.person;
}
}
Director:PersonDirector
package cn.leo.demo.mode.creator; public class PersonDirector { private PersonBuilder personBuilder; public PersonDirector(PersonBuilder personBuilder) { this.personBuilder = personBuilder; } public Person buildPerson(){ personBuilder.buildHead(); personBuilder.buildBody(); personBuilder.buildFeet(); return personBuilder.buildPerson(); } }
ManBuilder,WomenBuilder实现了构造复杂对象Person各个组成部分的具体细节。
建造者模式(builder)
建造者模式(Builder)C#设计模式系列:建造者模式(Builder)建造者模式(BuilderPattern) 状态模式C#设计模式——状态模式(StatePattern) 查看详情
设计模式——建造者模式
设计模式(五)——建造者模式一、建造者模式简介1、建造者模式简介 建造者模式将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式和抽象工厂模式... 查看详情
设计模式之————建造者模式
建造者模式1.什么是建造者模式?建造者模式属于创造型模式,它是将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。举例:普通房子和高楼,两者都很难建造,但也有相似点:打地... 查看详情
设计模式之建造者模式(创建型)(代码片段)
模式定义建造者模式属于23种设计模式中的创建型模式,可以理解为创建对象的一种很好的方法。所谓建造者模式就是将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。建造者... 查看详情
设计模式建造者模式(简介|适用场景|优缺点|代码示例)(代码片段)
文章目录一、建造者模式简介二、建造者模式适用场景三、建造者模式优缺点四、建造者模式与工厂模式五、建造者模式代码示例1、学生类2、建造者抽象类3、建造者实现类4、教师类(非必须)5、测试类六、实例类和建造者类定... 查看详情
设计模式—建造者模式(builder)(代码片段)
title:设计模式—建造者模式建造者模式(Builder)是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。我们获得一... 查看详情
java设计模式-建造者模式
建造者模式概述建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。它关注如... 查看详情
设计模式之建造者模式
1定义建造者模式(BuilderPatten):将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式用于一步一步创建一个复杂的对象,他允许用户只通过指定复杂对象的类型和内容进行构建,用户... 查看详情
设计模式建造者模式
建造者模式建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在建造事物时,如果发现事物的内部建造的顺序是保持不变的,并且多个事物之间的建造过程也是一致的那么就可以使... 查看详情
大话设计模式-建造者模式(代码片段)
建造者模式建造者模式又称生成器模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式主要用于创建一些复杂的对象,这些对象内部构构建间的构造顺序通常是稳定的,但对象内... 查看详情
设计模式:学习笔记——建造者模式
设计模式:学习笔记(4)——建造者模式概述建造者模式 建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只... 查看详情
设计模式——建造者模式
分类设计模式总体划分为三大类:创建型模式:工厂模式,抽象工厂模式,单例模式,建造者模式,原型模式模式,共5种。结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,共7中... 查看详情
设计模式—建造者模式
1建造者模式 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者返回给客户一个完整的产品对象,而客户端无须关心该对象所包含的属性和组建方式,这就是建造者模式的设... 查看详情
设计模式——建造者模式(代码片段)
设计模式(九)——建造者模式新专题:设计模式,我会在博客(http://www.hollischuang.com)及微信公众号(hollischuang)同步更新,欢迎共同学习。本文主要介绍创建型模式的最后一种————建造者模式。概念建造者模式(英:BuilderPatt... 查看详情
java设计模式3.建造者模式原型模式
建造者模式一个产品常有不同的组成部分作为产品的零件,有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用,有些时候,一个对象的一些性质必须按照某个顺序赋值才有... 查看详情
建造者模式
设计模式之建造者设计模式(也叫生成器模式)建造者模式就是将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示1:使用建造者模式的话,它封装了一个产品的构造过程,并且允许按照预定的步骤构... 查看详情
设计模式——建造者模式(代码片段)
什么是建造者建造者模式实际上是常用的设计模式。顾名思义,builder的意思是建造者或者建筑工人,谈到建造自然会想到楼房。楼房是千差万别的,楼房的外形、层数、内部房间的数量、房间的装饰等等都不一样,但是对于建... 查看详情
建造者模式
建造者模式的定义建造者模式(BuilderPattern)也叫做生成器模式,其定义如下:Separatetheconstructionofacomplexobjectfromitsrepresentationsothatthesameconstructionprocesscancreatedifferentrepresentations.(将一个复杂对象的构建与它的表示分离,使得同样... 查看详情