当前位置: 首页 > news >正文

单例模式 — 设计模式

单例模式(Singleton Pattern) 是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这个模式在多种编程语言和框架中都有广泛应用,特别是在需要控制资源访问或实现全局状态管理的场景中。

单例模式—题目链接

package mainimport ("bufio""fmt""os""strconv""strings""sync"
)type ShopCarManager struct {item_map map[string]int
}func (s *ShopCarManager) AddItemToCar(itemName string, count int) {if _, ok := s.item_map[itemName]; !ok {s.item_map[itemName] = count} else {s.item_map[itemName] += count}
}func (s *ShopCarManager) PrintAllItemInfo() {for k := range s.item_map {fmt.Println(k, s.item_map[k])}
}var once sync.Once
var shopCarInstance *ShopCarManagerfunc GetShowCarInstance() *ShopCarManager {once.Do(func() {shopCarInstance = &ShopCarManager{make(map[string]int)}})return shopCarInstance
}func main() {var shop_instance = GetShowCarInstance()var reader = bufio.NewScanner(os.Stdin)for reader.Scan() {if reader.Text() == "" {break}var str = reader.Text()var item_info = strings.Split(str, " ")var count, _ = strconv.Atoi(item_info[1])shop_instance.AddItemToCar(item_info[0], count)}shop_instance.PrintAllItemInfo()
}

http://www.mrgr.cn/news/59984.html

相关文章:

  • 怎么提取pdf的某一页?批量提取pdf的某一页的简单方法
  • ICP之点云特征计算
  • 忘记无线网络密码的几种解决办法
  • dy a_bogus 1.0.1.17 最新版本补环境 分析
  • gin入门教程(6):全局中间件,自定义中间件
  • Ubuntu服务器搭建Tailscale Derp节点
  • 【工程】mmcls中EfficientNet网络转onnx格式问题记录
  • 最近阶段的状态的复盘
  • 32位的ARMlinux的4字节变量原子访问问题
  • Vue2自定义指令及插槽
  • MySQL主主SQL线程异常修复大作战,一失足成千古恨啊!
  • 四期书生大模型实战营(【入门岛】- 第4关 | 玩转HF/魔搭/魔乐社区)
  • P11232 [CSP-S 2024] 超速检测(民间数据)
  • 【热门主题】000010 深入 Vue.js 组件开发
  • 【办公类-53-14】2024年9月周计划系列优化(5天、6天、7天模版)
  • vue3 debounce 作用:函数会从其被调用时延迟执行到调用结束的这段时间内,如果该函数被再次调用,则重新计算时间。
  • 使用 BERT 和逻辑回归进行文本分类及示例验证
  • 在数据库访问中,使用localhost、127.0.0.1和IP地址有什么差异
  • Java 中的 队列(Queue)与双端队列(Deque)
  • Host Key Verification Failed
  • 软件测试学习总结
  • 【Python】为Pandas加速(适合Pandas中级开发者)
  • PG数据库之数据类型入门
  • 【mysql】什么是当前读
  • JMeter 接口和性能测试常用函数最全解析!
  • ICP之点云特征计算