Go设计模式03-建造者模式
注:本文已发布超过一年,请注意您所使用工具的相关版本是否适用
序
- Go 设计模式实现,包含常见的设计模式实现,同时这也是 极客时间-设计模式之美 的笔记,源课程采用 Java 实现,本系列会采用 Go 实现
- 课程: 46 | 建造者模式:详解构造函数、set 方法、建造者模式三种对象创建方式
- **本文代码仓库: https://github.com/mohuishou/go-design-pattern **🌟🌟🌟🌟🌟
- **RoadMap: 03/22 **持续更新中,预计一周更新 2 ~ 3 种设计模式,预计到 202010 月底前更新完成
- **关注我,获取更新: **Github、知乎、RSS、开发者头条**
笔记
代码实现
其实在 Golang 中对于创建类参数比较多的对象的时候,我们常见的做法是必填参数直接传递,可选参数通过传递可变的方法进行创建。
本文会先实现课程中的建造者模式,然后再实现我们常用的方式。
建造者模式
代码
通过下面可以看到,使用 Go 编写建造者模式的代码其实会很长,这些是它的一个缺点,所以如果不是参数的校验逻辑很复杂的情况下一般我们在 Go 中不会采用这种方式,而会采用后面的另外一种方式
1 |
|
单元测试
1 |
|
Go 常用的参数传递方法
代码
1 |
|
单元测试
1 |
|
总结
其实可以看到,绝大多数情况下直接使用后面的这种方式就可以了,并且在编写公共库的时候,强烈建议入口的参数都可以这么传递,这样可以最大程度的保证我们公共库的兼容性,避免在后续的更新的时候出现破坏性的更新的情况。
关注我获取更新
猜你喜欢
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议,转载请注明出处,禁止全文转载