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.

インストールへ移動

ソース情報

リポジトリ
paulpas/agent-skill-router
ソースの最終更新活動
2026年6月10日 18:00
検出された SKILL.md の言語
英語
スター
6
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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.
GitHubで見る