Go设计模式04-原型模式
注:本文已发布超过一年,请注意您所使用工具的相关版本是否适用
序
- Go 设计模式实现,包含常见的设计模式实现,同时这也是 极客时间-设计模式之美 的笔记,源课程采用 Java 实现,本系列会采用 Go 实现
- 课程: 47 | 原型模式:如何最快速地 clone 一个 HashMap 散列表?
- **本文代码仓库: https://github.com/mohuishou/go-design-pattern **🌟🌟🌟🌟🌟
- **RoadMap: 04/22 **持续更新中,预计一周更新 2 ~ 3 种设计模式,预计到 202010 月底前更新完成
- **获取更新: **Github、知乎、RSS、开发者头条**
笔记
代码实现
- 这个模式在 Java、C++ 这种面向对象的语言不太常用,但是如果大家使用过 javascript 的话就会非常熟悉了,因为 js 本身是基于原型的面向对象语言,所以原型模式在 js 中应用非常广泛。
- 接下来会按照一个类似课程中的例子使用深拷贝和浅拷贝结合的方式进行实现
- 需求: 假设现在数据库中有大量数据,包含了关键词,关键词被搜索的次数等信息,模块 A 为了业务需要
- 会在启动时加载这部分数据到内存中
- 并且需要定时更新里面的数据
- 同时展示给用户的数据每次必须要是相同版本的数据,不能一部分数据来自版本 1 一部分来自版本 2
Code
1 |
|
单元测试
1 |
|
关注我获取更新
猜你喜欢
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议,转载请注明出处,禁止全文转载