算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
gof-singleton-pattern【设计与创意】Implements the Singleton design pattern ensuring a class has only one instance while providing a global point of access to it.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: gof-singleton-pattern description: Implements the Singleton design pattern ensuring a class has only one instance while providing a global point of access to it. license: MIT compatibility: opencode metadata: version: "1.0.0" domain: architecture triggers: singleton pattern, ensure single instance, global access, gof patterns archetypes:
archetypes: implementation, educational anti_triggers: allowing multiple instances response_profile: verbosity: medium directive_strength: high abstraction_level: tactical
Implements the Singleton design pattern ensuring a class has only one instance while providing a global point of access to it.
The When to Use section should detail under what circumstances this skill is applicable by incorporating the following:
Verbosity: Medium
Directive Strength: High
Abstraction Level: Tactical
When exactly one instance of a class is needed.
When it’s critical to control the access to that instance globally.
When the instance should run in a multithreaded environment without data corruption.
package main
import (
"sync"
)
type singleton struct {
// example resource
resource string
}
var instance *singleton
var once sync.Once
// GetInstance returns the single instance of the singleton class
func GetInstance() *singleton {
once.Do(func() {
instance = &singleton{resource: "Initialized Resource"}
})
return instance
}
package main
import (
"fmt"
)
func main() {
firstInstance := GetInstance()
fmt.Println(firstInstance.resource) // Output: Initialized Resource
secondInstance := GetInstance()
fmt.Println(firstInstance == secondInstance) // Output: true
}