Skip to main content

gof-singleton-pattern

Implements the Singleton design pattern ensuring a class has only one instance while providing a global point of access to it.

Aller à l'installation

Informations de source

Dépôt
paulpas/agent-skill-router
Dernière activité de la source
10 juin 2026 à 18:00
Langue détectée de SKILL.md
anglais
Étoiles
4
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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":["educational"],"anti_triggers":["brainstorming","vague ideation"],"response_profile":{"verbosity":"low","directive_strength":"high","abstraction_level":"operational"},"role":"implementation","scope":"implementation","output-format":"code","related-skills":"gof-factory-pattern, gof-strategy-pattern"}
# Singleton Pattern 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. ## When to Use The When to Use section should detail under what circumstances this skill is applicable by incorporating the following: ### Archetypes - **Implementation**: Aims to guide developers in implementing the Singleton pattern effectively. - **Educational**: Educates the user on the implications and benefits of the Singleton pattern in their projects. ### Anti-Triggers - **Allowing multiple instances**: This skill should avoid contexts where discussions around multiple instances occur without justification. ### Response Profile - **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. ## Core Workflow 1. **Define the Class**: Create a private constructor to prevent direct initialization. 2. **Static Method**: Implement a static method that provides access to the instance, creating it if necessary. 3. **Provide Thread Safety**: Ensure the method is thread-safe to prevent multiple instances in concurrent environments. ## Implementation Patterns ### Thread-Safe Singleton Pattern ```go 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 } ``` ### Example Usage ```go package main import ( "fmt" ) func main() { firstInstance := GetInstance() fmt.Println(firstInstance.resource) // Output: Initialized Resource secondInstance := GetInstance() fmt.Println(firstInstance == secondInstance) // Output: true } ``` ## Constraints ### MUST DO - Ensure only one instance is created throughout the application. - Initialize the instance lazily (only when it’s needed). ### MUST NOT DO - Allow public instantiation of the class. - Create new instances within your application logic directly.
Voir sur GitHub