美文网首页
生成器模式

生成器模式

作者: 小幸运Q | 来源:发表于2021-02-19 15:14 被阅读0次
  • 问题所在:代码重复

将复杂对象的构建(构造过程)与表示(构造方法)分离,使得同样的构建过程可以创建不同的表示。

把product和初始化方法放在concretebuilder中,然后传给director,由director定义调用的顺序还有调用哪些方法。

image.png

四种角色(5种包括客户端):

产品(Product):具体生产器要构造的复杂对象,它的各个组成部分由ConcreteBuilder生成,生成过程由Director(指导类)控制。注意该类中只提供了get方法,这个看具体需求。

抽象生成器(Builder):声明了生成器应包含的创建产品各个组成部件的方法。注意,这些方法只是生成对象的各组成部分,各方法相互独立,方法间无时序关系,也不存在“总”的生成方法。另外,Builder应包含获取生成的产品的方法。

具体生产器(ConcreteProduct):实现Builder接口的类,具体生成器将实现Builder接口所定义的方法;每种不同的产品都有一个专属的ConcreteBuilder。

指导类(Director):用于控制产品的生成过程。Director的控制对象是Builder,即通过Director实现了对各类型产品的生成过程的重用。

客户端(Client):是生成器模式的使用者。对Client来说,生成的最终产品Product的类型是明确的,生成Product所使用的具体生成器ConcreteBuilder也是明确的

image.png
package main

import "fmt"

// 包含获取产品以及配置产品的方法
type Builder interface {
    SetName(string)
    GetProduct() Product
}

type Director struct {
    // 负责指导产品的具体的生成过程
}
func (director *Director) Construct(builder Builder) {
    builder.SetName("aaa")
}

type ConcreteBuilder1 struct {
    Builder
    product Product
}
func (this *ConcreteBuilder1) SetName(name string) {
    this.product.name = name
}
func (this *ConcreteBuilder1) GetProduct() Product {
    return this.product
}

type Product struct {
    name string
}

func main() {
    director := new(Director)
    builder1 := new(ConcreteBuilder1)

    director.Construct(builder1)
    product := builder1.GetProduct()
    fmt.Println(product)
}

相关文章

  • 生成器模式(Builder Pattern)

    生成器模式:用生成器模式封装一个产品的构造过程,并允许按步骤构造 生成器模式又称为建造者模式,是创建性模式中的一种...

  • 设计模式--生成器(建造者)

    生成器模式(Builder) 生成器模式最初的定义出现于《设计模式》(Addison-Wesley,1994) 生...

  • 生成器模式(Builder Pattern)

    1.生成器模式概念 在《Head First Design Patterns》文中是这么介绍生成器模式的,“封装一...

  • 生成器模式

    生成器模式是iOS设计模式中比较简单的一种模式,也经常拿来和抽象工厂作对比。首先我们说下什么事生成器模式。该模式由...

  • iOS设计模式-生成器模式

    何为生成器模式? 生成器模式:将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。 生成器模...

  • 创建型模式4-生成器模式

    创建型模式4-生成器模式 生成器模式(builder) 意图 将一个复杂对象的构建与它的的表示分离,使得同样的构建...

  • S2. 生成器模式

    生成器模式 生成器模式属于创建型设计模式,根据需要分步创建功能较多的对象。 场景 问题 假设要生产两款不同品牌的笔...

  • 设计模式 - 工具箱

    大纲: OO模式 OO基础 OO原则 Point # OO模式 策略模式 观察者模式 装饰者模式 生成器模式 Bu...

  • 《设计模式之禅》读书笔记-2.5-建造者模式

    2.5 建造者模式 定义: Builder Pattern,也叫生成器模式Separate the constru...

  • 生成器模式 Builder Pattern

    生成器模式(Builder Pattern)又称为建造模式,是 Gang of Four design patte...

网友评论

      本文标题:生成器模式

      本文链接:https://www.haomeiwen.com/subject/qasvxltx.html