agentsclimarketplace

Java design pattern

Skill ducpm2303/claude-java-plugins/plugins/java-core/skills/java-design-pattern

Java developer toolkit for Claude Code — skills, agents, hooks, and coding standards for Java 8+ projects

Install
npx -y skills add ducpm2303/claude-java-plugins --skill java-design-pattern

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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".

SKILL.md

3.4 KB, as published. Nobody here has run it

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:

ProblemRecommended Pattern
Need multiple algorithms interchangeable at runtimeStrategy
Object creation is complex, many optional fieldsBuilder
Need to add behaviour without modifying existing classDecorator
Need to notify multiple objects when state changesObserver
Complex subsystem needs a simple interfaceFacade
Same operation on tree structuresComposite
Object has distinct lifecycle statesState
Need only one instance globallySingleton (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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.