美文网首页
构建者模式

构建者模式

作者: 一毛钱 | 来源:发表于2019-03-31 22:34 被阅读0次

构建者模式-定义(建造者模式、builder模式)

将一个复杂对象的创建和配置进行分离。调用组件负责提供配置对象的数据,并负责将配置数据传递给中间人,即建造者。而建造者则代表调用组件创建对象。如此分离之后,调用组件就无需过多掌握其所使用的对象的信息,将默认配置信息集中放在建造者类中即可,而不用将这些信息散布于每一个需要创建对象的调用组件中。创建时所配置的参数不一样,生产出的具体产品也将不一样。

构建者模式-使用场景

如果创建对象需要进行复杂的配置,而你又不让默认配置在整个应用中传播,即可使用此模式。
场景一:相同方法,不同的调用顺序,不同的初始化参数,生产出的产品将不一样。
场景二:多个部件,都可以组装在一个对象上,但是产生的结果不一样
场景三:当一个类非常复杂的时候,并且进行初始化默认的参数(网络请求)

构建者模式-角色划分?

角色一:抽象产品->ProductPtotocol(可有可无)
角色二:具体产品->ConcreteProduct(核心)
角色三:抽象构建者->BuilderPtotocol(可有可无)
角色四:具体构建者->ConcreteBuilder(核心)
角色五:统一组装类(可有可无)
(通过产品使用组件,调用具体构建者配置不同的参数。然后由具体的构建者进行构建出具体的产品)

示例程序

//角色一:具体构建者。内部有需要创建具体产品所需的各项参数,并且全部需要设置初始值。
//有创建具体产品的方法 func build(name:String) -> Computer
// 外部调用该类初始化具体产品Computer时,可以不需要修改任何默认配置参数,也可以修改默认配置参数生产出不同的产品。
class ComputerBuilder: NSObject {
    
    private var cpu:String = "XIAOLONG"
    private var display:String = "HUAWEI"
    private var gpu:String = "i5"
    
    func cpu(_ cpu:String) -> ComputerBuilder {
        self.cpu = cpu
        return self
    }
    
    func display(_ display:String) -> ComputerBuilder {
        self.display = display
        return self
    }
    
    func gpu(_ gpu:String) -> ComputerBuilder {
        self.gpu = gpu
        return self
    }
    
    func build(name:String) -> Computer {
        return Computer(name, self.cpu, self.display, self.gpu)
    }  
}
}

//角色二:具体产品(只由构建者创建,而不是通过其他调用组件创建,因为所需要的默认配置只在构建者(案例中角色一)中有)
class Computer: NSObject {

    var name:String?
    var cpu:String?
    var display:String?
    var gpu:String?
    
    init(_ name:String,_ cpu:String,_ display:String,_ gpu:String) {
        self.name = name
        self.display = display
        self.cpu = cpu
        self.gpu = gpu
    }
    
    func printComputer() {
        print(self.name!)
        print(self.cpu!)
        print(self.display!)
        print(self.gpu!)
    }
    
//外部调用
let builder = ComputerBuilder()
let computer = builder.cpu("I7指定处理器").build(name: "华为最新电脑")
computer.printComputer()

相关文章

  • 构建者模式

    1.什么是构建者模式以及构建者模式的优点 构建者模式又称建造者模式,其主要功能是将一个复杂的对象的构建和表示进行分...

  • 07.构建者模式(创建型)

    创建型模式-构建者模式(生成器模式) 构建者模式为客户返回一个由多个部件组成的复杂产品。 一、构建者模式相关定义 ...

  • 构建者(Builder)模式

    不怕跌倒,所以飞翔 本文中知识点概述: 构建者模式的定义以及为什么要使用构建者模式; 构建者模式在Android中...

  • 安卓设计模式-构建者模式

    安卓设计模式-构建者模式 是什么 构建者模式又生builder模式,是将复杂的对象的构建与他的表示分离,使得同样的...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

  • (八)大话设计模式 -建造者模式Builder(生成器模式)(i

    介绍 什么是构建者模式 创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创...

  • 设计模式-创建型-构建者模式

    基本概念: 构建者模式的定义将构建的过程和表示过程进行分离构建的过程:隐藏表示过程 : 开放 构建者模式的场景创建...

  • 设计模式[5]-构建者模式-Builder Pattern

    1. 构建者模式 构建者模式是创建型的设计模式,可以将复杂对象的创建过程和表示分离,使得同样的构建过程可以创建不同...

  • 设计模式--构建者设计模式

    设计模式--构建者设计模式 1. 概念理解 建造者模式,将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可...

  • Android常见设计模式—Builder模式

    Builder(建造者模式) 建造者模式:是将一个复杂的对象的构建与它的表示分离(同构建不同表示),使得同样的构建...

网友评论

      本文标题:构建者模式

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