Receber por email
← Voltar para o catálogo

claude-java-plugins

Detects GoF patterns in Java code or recommends the right pattern for a problem. Use when user asks to "what pattern is this", "detect design patterns", "suggest a pattern", "should I use factory", "which design pattern", or "recommend a pattern for".

15estrelas
Atualizado há 6 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add ducpm2303/claude-java-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/claude-java-plugins-mpsy0vsx/svg)](https://www.skillteca.com.br/skills/claude-java-plugins-mpsy0vsx)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Either detect which design patterns are used in the provided code, or recommend the right pattern for a described problem. Tailor all examples to the detected Java version (Java 8+).

Mode A — Detect patterns in existing code

Scan the code for these common patterns and name them explicitly:

Creational:

  • Singleton — private constructor + static instance (flag if not thread-safe without volatile or enum)
  • Factory Method — static create() or of() returning an interface type
  • Builder — inner static Builder class with fluent setters and build()
  • Abstract Factory — factory that creates families of related objects

Structural:

  • Decorator — wraps another object implementing the same interface to add behaviour
  • Proxy — Spring @Transactional, @Cacheable, @Async are all proxies; flag manual proxies
  • Adapter — converts one interface to another (often with *Adapter or *Wrapper class name)
  • Facade — simplifies a complex subsystem; often a service that orchestrates multiple repos/clients
  • Composite — tree structure where leaf and composite implement the same interface

Behavioral:

  • Strategy — interface with multiple implementations selected at runtime
  • Observer — Spring ApplicationEvent / @EventListener or manual listener list
  • Template Method — abstract class with final algorithm method calling overridable steps
  • Command — encapsulates a request as an object (common in undo/redo, queuing)
  • Chain of Responsibility — Spring Security filter chain, Servlet filters
  • State — object behaviour changes based on internal state enum/object

For each detected pattern: name it, show the key code that reveals it, explain how it's used here.

Mode B — Recommend a pattern for a problem

When the user describes a problem, recommend the most appropriate pattern:

| Problem | Recommended Pattern | |---|---| | Need multiple algorithms interchangeable at runtime | Strategy | | Object creation is complex, many optional fields | Builder | | Need to add behaviour without modifying existing class | Decorator | | Need to notify multiple objects when state changes | Observer | | Complex subsystem needs a simple interface | Facade | | Same operation on tree structures | Composite | | Object has distinct lifecycle states | State | | Need only one instance globally | Singleton (or Spring @Component) |

Show a minimal Java implementation for the recommended pattern, appropriate for the detected Java version:

  • Java 8+: use functional interfaces (Strategy can be a lambda Function<T,R>)
  • Java 17+: use sealed classes for State pattern
  • Java 16+: use records for value objects in patterns

Output format

Mode A: List each detected pattern with: name + location + explanation + any concerns (e.g., non-thread-safe Singleton) Mode B: Recommend pattern + minimal before/after code + when to use vs alternatives

Next Steps

  • After identifying patterns → run /java-solid to check if patterns are applied correctly
  • For implementation help → ask the java-architect agent for full design guidance
Compartilhar X LinkedIn