Referência completa dos 22 Design Patterns (GoF) com exemplos em C#/.NET. Use esta skill sempre que o usuário perguntar sobre design patterns, padrões de projeto, GoF patterns, ou pedir exemplos de implementação em C#. Também use quando o usuário mencionar nomes específicos de patterns como Strategy, Observer, Factory, Singleton, Builder, Adapter, Decorator, Proxy, Command, etc. Use quando o usuário pedir ajuda para escolher um pattern para um problema específico, quando quiser refatorar código usando patterns, ou quando pedir comparações entre patterns. Inclui código C# compilável, diagramas Mermaid, e orientação contextualizada. Fonte: Refactoring.Guru.
How this skill is triggered — by the user, by Claude, or both
Slash command
/design-patterns-csharp:design-patterns-csharpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Skill que fornece acesso rápido aos 22 Design Patterns do GoF com exemplos em C# moderno,
patterns/behavioral/chain-of-responsibility.mdpatterns/behavioral/command.mdpatterns/behavioral/iterator.mdpatterns/behavioral/mediator.mdpatterns/behavioral/memento.mdpatterns/behavioral/observer.mdpatterns/behavioral/state.mdpatterns/behavioral/strategy.mdpatterns/behavioral/template-method.mdpatterns/behavioral/visitor.mdpatterns/creational/abstract-factory.mdpatterns/creational/builder.mdpatterns/creational/factory-method.mdpatterns/creational/prototype.mdpatterns/creational/singleton.mdpatterns/structural/adapter.mdpatterns/structural/bridge.mdpatterns/structural/composite.mdpatterns/structural/decorator.mdpatterns/structural/facade.mdSkill que fornece acesso rápido aos 22 Design Patterns do GoF com exemplos em C# moderno, extraídos do Refactoring.Guru e enriquecidos com diagramas e orientação prática.
Os exemplos de código e descrições ficam em arquivos separados por categoria. Leia APENAS o arquivo do pattern relevante, não carregue tudo de uma vez.
patterns/
├── creational/ # Padrões Criacionais
│ ├── abstract-factory.md
│ ├── builder.md
│ ├── factory-method.md
│ ├── prototype.md
│ └── singleton.md
├── structural/ # Padrões Estruturais
│ ├── adapter.md
│ ├── bridge.md
│ ├── composite.md
│ ├── decorator.md
│ ├── facade.md
│ ├── flyweight.md
│ └── proxy.md
└── behavioral/ # Padrões Comportamentais
├── chain-of-responsibility.md
├── command.md
├── iterator.md
├── mediator.md
├── memento.md
├── observer.md
├── state.md
├── strategy.md
├── template-method.md
└── visitor.md
| Pattern | Categoria | Arquivo | Propósito resumido |
|---|---|---|---|
| Abstract Factory | Criacional | creational/abstract-factory.md | Produzir famílias de objetos relacionados |
| Builder | Criacional | creational/builder.md | Construir objetos complexos passo a passo |
| Factory Method | Criacional | creational/factory-method.md | Delegar criação a subclasses |
| Prototype | Criacional | creational/prototype.md | Clonar objetos existentes |
| Singleton | Criacional | creational/singleton.md | Garantir instância única |
| Adapter | Estrutural | structural/adapter.md | Compatibilizar interfaces incompatíveis |
| Bridge | Estrutural | structural/bridge.md | Separar abstração de implementação |
| Composite | Estrutural | structural/composite.md | Compor objetos em estruturas de árvore |
| Decorator | Estrutural | structural/decorator.md | Adicionar comportamentos via wrapper |
| Facade | Estrutural | structural/facade.md | Interface simplificada para subsistema complexo |
| Flyweight | Estrutural | structural/flyweight.md | Compartilhar estado para economizar memória |
| Proxy | Estrutural | structural/proxy.md | Substituto que controla acesso |
| Chain of Resp. | Comportamental | behavioral/chain-of-responsibility.md | Passar pedidos por uma cadeia de handlers |
| Command | Comportamental | behavioral/command.md | Encapsular pedido como objeto |
| Iterator | Comportamental | behavioral/iterator.md | Percorrer elementos sem expor estrutura |
| Mediator | Comportamental | behavioral/mediator.md | Reduzir dependências entre objetos |
| Memento | Comportamental | behavioral/memento.md | Salvar e restaurar estado anterior |
| Observer | Comportamental | behavioral/observer.md | Notificar sobre mudanças de estado |
| State | Comportamental | behavioral/state.md | Alterar comportamento conforme estado interno |
| Strategy | Comportamental | behavioral/strategy.md | Intercambiar algoritmos em runtime |
| Template Method | Comportamental | behavioral/template-method.md | Esqueleto de algoritmo com passos customizáveis |
| Visitor | Comportamental | behavioral/visitor.md | Separar algoritmos dos objetos que operam |
Siga este fluxo ao responder sobre design patterns:
Se o usuário menciona um pattern por nome, use o view tool para ler o arquivo correspondente:
view patterns/{categoria}/{pattern-slug}.md
Se o usuário descreve um problema sem mencionar um pattern, use o índice acima para recomendar o(s) pattern(s) mais adequados. Explique brevemente por que cada um se aplica.
A resposta deve incluir, nesta ordem:
Se o usuário forneceu contexto sobre seu projeto (ex: multi-agent system, API .NET, etc.), adapte o exemplo de código para usar nomes e estruturas relevantes ao contexto dele. Não dê exemplos genéricos se tiver informação para personalizar.
Sempre gere um diagrama de classes Mermaid para o pattern. Exemplo de formato:
classDiagram
class Context {
-strategy: IStrategy
+setStrategy(IStrategy)
+doSomething()
}
class IStrategy {
<<interface>>
+execute(data)
}
class ConcreteStrategyA {
+execute(data)
}
class ConcreteStrategyB {
+execute(data)
}
Context --> IStrategy
ConcreteStrategyA ..|> IStrategy
ConcreteStrategyB ..|> IStrategy
Quando o usuário não sabe qual pattern precisa, use estas perguntas:
| Problema | Pattern(s) sugerido(s) |
|---|---|
| Preciso criar objetos sem especificar a classe concreta | Factory Method, Abstract Factory |
| Preciso construir um objeto complexo com muitas configurações | Builder |
| Preciso copiar objetos sem depender de suas classes | Prototype |
| Preciso garantir uma única instância global | Singleton |
| Preciso adaptar uma interface incompatível | Adapter |
| Tenho muitas classes com combinações de variantes | Bridge |
| Preciso trabalhar com estruturas de árvore | Composite |
| Preciso adicionar responsabilidades dinamicamente | Decorator |
| Preciso simplificar uma API complexa | Facade |
| Tenho milhares de objetos similares consumindo memória | Flyweight |
| Preciso controlar acesso, cache, ou lazy loading | Proxy |
| Preciso processar um pedido por múltiplos handlers | Chain of Responsibility |
| Preciso desacoplar quem invoca de quem executa | Command |
| Preciso percorrer uma coleção sem expor sua estrutura | Iterator |
| Tenho muitos objetos se comunicando de forma caótica | Mediator |
| Preciso de undo/redo ou snapshots de estado | Memento |
| Preciso notificar vários objetos sobre mudanças | Observer |
| O comportamento muda conforme o estado do objeto | State |
| Preciso trocar algoritmos em runtime | Strategy |
| Tenho um algoritmo com passos fixos mas customizáveis | Template Method |
| Preciso adicionar operações sem modificar as classes | Visitor |
Todos os patterns são baseados no catálogo do Refactoring.Guru: https://refactoring.guru/pt-br/design-patterns/csharp
Para aprofundamento, o livro original é: "Design Patterns: Elements of Reusable Object-Oriented Software" — Gang of Four (GoF)
npx claudepluginhub xamuavila/golden-skills --plugin design-patterns-csharpGang of Four patterns (Creational, Structural, Behavioral) and when to apply them.
Decision guide for the 23 Gang of Four patterns. Maps code symptoms and goals to the right pattern, then loads the structural recipe.
Covers 26 Gang of Four design patterns with PHP 8.3+ implementations, UML diagrams, and practical use cases.