大话设计模式-建造者模式(代码片段)

errornull errornull     2023-01-28     377

关键词:

建造者模式

建造者模式又称生成器模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式主要用于创建一些复杂的对象,这些对象内部构构建间的构造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时适用的模式。

 


建造者模式结构演示

产品类:Product

Product是具体的产品角色,由多个部件组成

class Product
    IList<string> parts = new List<string>();
    public void Add(string part) => parts.Add(part);
    public void Show()
        Console.WriteLine("产品创建");
        foreach (string part in parts)
            Console.WriteLine(part);
    

建造者抽象类:Builder

是建造一个产品的各个部分的抽象类,规定实现一个产品必须要实现的部分。由确定产品的两个部件PartA和PartB组成,并声明一个得到产品建造后结果的方法GetResult。

abstract class Builder
    public abstract void BuilderPartA();
    public abstract void BuilderPartB();
    public abstract Product GetResult();

具体建造者类:ConcreteBuilder

具体建造者类是对抽象的具体实现,基于同样要求实现的方法实现不同的内容,建造两个具体的部件。

class ConcreteBuilderA : Builder
    private Product product = new Product();
    public override void BuilderPartA() => product.Add("部件A");
    public override void BuilderPartB() => product.Add("部件B");
    public override Product GetResult() => product;

class ConcreteBuilderB : Builder
    private Product product = new Product();
    public override void BuilderPartA() => product.Add("部件X");
    public override void BuilderPartB() => product.Add("部件Y");
    public override Product GetResult() => product;

指挥者类:Director

指挥者类根据用户的需求来创建产品。其中指挥建造过程。

class Director
    public void Construct(Builder builder)
        builder.BuilderPartA();
        builder.BuilderPartB();
    

测试类:Program

客户端不需要知道具体的建造过程。

//Main方法
Director director = new Director();
Builder b1 = new ConcreteBuilderA();
Builder b2 = new ConcreteBuilderB();
director.Construct(b1);
Product p1 = b1.GetResult();
p1.Show();
director.Construct(b2);
Product p2 = b2.GetResult();
p2.Show();
//测试结果
产品创建
部件A
部件B
产品创建
部件X
部件Y

 

大话设计模式第十三章之建造者模式

packagecom.build;/***建造胖子*@author黄二狗**/publicclassPersonFatBuilder{publicPersonFatBuilder(){}publicvoidbuild(){System.out.println("大头");System.out.println("大腿");System.out.println("粗腰");}}packagecom.b 查看详情

建造者模式

 上一回,学习李建忠讲的设计模式建造者模式这次又找出大话模式的书 两者作一对比,找出一些由象入理的学习点,以方便下次有场景的时候 可以想到,从这些方面入手,也就是培养思考意识 刚翻看大话设计模... 查看详情

《大话设计模式》——读后感好菜每回味不同——建造者模式之基础案例

建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式通常包括下面几个角色:1.builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定... 查看详情

设计模式建造者模式(简介|适用场景|优缺点|代码示例)(代码片段)

文章目录一、建造者模式简介二、建造者模式适用场景三、建造者模式优缺点四、建造者模式与工厂模式五、建造者模式代码示例1、学生类2、建造者抽象类3、建造者实现类4、教师类(非必须)5、测试类六、实例类和建造者类定... 查看详情

设计模式之建造者模式(创建型)(代码片段)

模式定义建造者模式属于23种设计模式中的创建型模式,可以理解为创建对象的一种很好的方法。所谓建造者模式就是将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。建造者... 查看详情

建造者模式

...要面临比较复杂的变化。怎么来解释呢?我们利用《大话设计模式》中的例子来解释,创建一个胖子和一个瘦子,我们需要画出头、手、脚、身体这几个部分,最没水平的写法是写两个类,一个胖子类,一个瘦子类,这不像我们... 查看详情

建造者模式(代码片段)

建造者模式标签(空格分隔):设计模式什么是建造者模式Builder模式,建造者模式也叫生成器模式,是GoF提出的23种设计模式中的一种,是一种对象的创建型模式,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽... 查看详情

设计模式——建造者模式(代码片段)

设计模式(九)——建造者模式新专题:设计模式,我会在博客(http://www.hollischuang.com)及微信公众号(hollischuang)同步更新,欢迎共同学习。本文主要介绍创建型模式的最后一种————建造者模式。概念建造者模式(英:BuilderPatt... 查看详情

设计模式随笔:建造者模式(代码片段)

建造者模式(BuilderDesign)定义  把一个复杂对象的构建和表示分离开,使同样的构建构成可以创建不同的表示(官方的定义)UML图说明   抽象建造者接口(Builder):抽象定义的建造者(非必须的)导演角色类(Director... 查看详情

设计模式——建造者模式(代码片段)

什么是建造者建造者模式实际上是常用的设计模式。顾名思义,builder的意思是建造者或者建筑工人,谈到建造自然会想到楼房。楼房是千差万别的,楼房的外形、层数、内部房间的数量、房间的装饰等等都不一样,但是对于建... 查看详情

设计模式—建造者模式(builder)(代码片段)

title:设计模式—建造者模式建造者模式(Builder)是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。我们获得一... 查看详情

设计模式----建造者模式(代码片段)

建造者模式介绍角色代码演示通过反射创建建造者对象优点缺点适用场景总结参考文章介绍建造者模式(BuilderPattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种... 查看详情

设计模式之建造者模式(代码片段)

设计模式之建造者模式  建造者模式(BuilderPattern)也叫生成器模式,定义:Separatetheconstructionofcomplexobjectfromitsrepresentationsothatthesameconstructionprocesscancreatedifferentrepresentations.(将一个复杂的对象的构建与它的表示 查看详情

设计模式学习系列——建造者模式(代码片段)

 建造者模式  建造者模式(BuilderPattern)使用多个简单的对象一步一步构建成一个复杂的对象。  优点: 1、建造者独立,易扩展。2、便于控制细节风险。  缺点: 1、产品必须有共同点,范围有限制。2、如内... 查看详情

gof设计模式(05)建造者模式(代码片段)

简介一、定义1、概念建造者模式(Builder):将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。2、理解将客户端与包含多个组成部分的复杂对象的创建过程... 查看详情

设计模式之建造者模式(代码片段)

本文由老王家组装电脑引出——建造者设计模式,详细介绍建造者模式的基本概念和实现代码,为了便于理解建造者模式,我们会对实际应用中的典型案例进行介绍。最后对比工厂模式和建造者模式之间的区别,让我们在实际使... 查看详情

设计模式之建造者模式(代码片段)

建造者模式1.简要概述2.模式结构3.实现代码4.优点好处5.缺点弊端6.应用场景7.应用示例1.简要概述建造者模式也可以叫做生成器模式。建造者模式就是说首先封装一个对象的构造过程,然后按照这个过程步骤去构建这个对象实... 查看详情

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

...r模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。  Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地... 查看详情