单例模式 — 设计模式

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

单例模式---题目链接

go 复制代码
package main

import (
	"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 *ShopCarManager

func 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()
}
相关推荐
9号达人2 分钟前
Java 14 新特性详解与实践
java·后端·面试
ytadpole5 分钟前
揭秘XXL-JOB:Bean、GLUE 与脚本模式的底层奥秘
java·后端
计算机毕业设计木哥20 分钟前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计
青衫客3620 分钟前
Spring异步编程- 浅谈 Reactor 核心操作符
java·spring·响应式编程
Seven9720 分钟前
剑指offer-30、连续⼦数组的最⼤和
java
BenChuat23 分钟前
Java常见排序算法实现
java·算法·排序算法
熙客25 分钟前
SpringCloud概述
java·spring cloud·微服务
a5876940 分钟前
Elasticsearch核心概念与Java实战:从入门到精通
java·es
Brookty1 小时前
【JavaEE】线程安全-内存可见性、指令全排序
java·开发语言·后端·java-ee·线程安全·内存可见性·指令重排序
tellmewhoisi2 小时前
前置配置1:nacos 基本配置(注册与发现)
java