设计模式(DesignPattern)之创建者模式(Builder)
2018-03-25 16:44
363 查看
1、定义
Bulder模式属于创建型模式,封装一个复杂对象的创建过程,并允许按步骤2、使用场景
创建复杂的对象,如需要创建的对象有很多参数。3、UML类图
4、代码实现
public class Computer { /** * Computer的品牌 */ private String brand; /** * Computer的操作系统 */ private String os; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getOs() { return os; } public void setOs(String os) { this.os = os; } public class Builder { private Computer computer; public Builder() { computer = new Computer(); } public Builder setBrand(String name) { computer.setBrand(name); return this; } public Builder setOs(String os) { computer.setOs(os); return this; } public Computer build() { return computer; } } }
/** * Builder模式Kotlin实现 */ class ComputerKotlin private constructor(builder: Builder) { companion object { fun build(init: Builder.() -> Unit) = Builder(init).build() } var brand: String? var os: String? init { brand = builder.brand os = builder.os } class Builder(init: Builder.() -> Unit) { var brand: String? = null var os: String? = null init { init() } fun setBrand(init: Builder.() -> String) = apply { brand = init() } fun setOs(init: Builder.() -> String) = apply { os = init() } fun build() = ComputerKotlin(this) } }
class Test{ var computer = ComputerKotlin.build{ it.setBrand("Lenove") it.setOs("MAC") } }在通常情况下,不同的复杂对象的创建都会有特有的定制,所以一般省略掉Director和抽象的Builder类,采用类部类的方式在实现创建者。
5、总结
优点:良好的封装性,使用builder构建对象是不必知道其内部的细节。代码:https://gitee.com/os2chen/DesignPattern
相关文章推荐
- JAVA设计模式——创建者模式(builder)
- "围观"设计模式(9)--创建型之创建者模式(Builder Pattern)
- 设计模式 (四)创建者模式(Builder)
- java设计模式-Builder创建者模式
- 设计模式拾荒之创建者模式( Builder Pattern )
- 【设计模式】—— 创建者模式Builder
- 设计模式 (四)创建者模式(Builder)
- 设计模式(五)创建者模式(Builder)
- [设计模式整理笔记 五] 创建者模式(Builder)
- 设计模式之Builder (创建者模式)的一些个人理解(转)
- [设计模式整理笔记 五] 创建者模式(Builder)
- 我说设计模式 - 创建者模式(Builder)
- 《模式——工程化实现及扩展》(设计模式C# 版)《创建者模式 Builder》——正文完整示例
- 设计模式(五)创建者模式(Builder)-创建型
- 《模式——工程化实现及扩展》(设计模式C# 版)《创建者模式 Builder》——“自我检验" 参考答案
- 设计模式之创建者模式(Builder)
- 设计模式学习---创建者模式(BuilderPattern)
- 设计模式 (四)创建者模式(Builder)
- Builder设计模式
- 安卓设计模式之Builder