设计模式——建造者模式

原地没有风 原地没有风     2022-09-21     572

关键词:

分类

设计模式总体划分为三大类:

创建型模式:工厂模式,抽象工厂模式,单例模式,建造者模式,原型模式模式,共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.(将一个复杂对象的构建与它的表示分离,使得同样... 查看详情