更新各个设计模式示例,添加工厂方法、原型和单例模式的实现,重构相关代码并增强可读性

This commit is contained in:
2025-12-11 16:57:10 +08:00
parent cc736d524b
commit 357c4748f8
10 changed files with 558 additions and 1 deletions
+44
View File
@@ -0,0 +1,44 @@
package main
/*
实例
汤宝宝混穿到了泰拉世界,并成为了泰拉联邦的唯一统治者。人类只有一个帝皇!
*/
import (
"fmt"
"sync"
)
// 帝皇类
type Emperor struct {
Name string
}
var emperorInstance *Emperor
var once sync.Once
// 获取帝皇实例的函数
func GetEmperorInstance(name string, announce string) *Emperor {
fmt.Println(announce)
once.Do(func() {
emperorInstance = &Emperor{Name: name}
})
return emperorInstance
}
func main() {
fmt.Println("========= 单例模式 =========")
// 获取帝皇实例
emperor1 := GetEmperorInstance("汤宝宝", "泰拉联邦的帝皇诞生了!")
fmt.Printf("帝皇的名字是:%s!\n", emperor1.Name)
emperor2 := GetEmperorInstance("王二狗", "泰拉联邦的帝皇又一次诞生了!")
fmt.Printf("帝皇的名字是:%s!\n", emperor2.Name)
if emperor1 == emperor2 {
fmt.Printf("泰拉只有一个帝皇:%s!\n\n", emperor1.Name)
}
fmt.Println("======= 单例模式结束 =======")
}