Problem-driven Java software design and refactoring guidance covering all 23 GoF patterns, selection heuristics, trade-offs, and modern Java 21+ implementations. Use when turning a Java design into code; reviewing architecture; or refactoring, restructuring, or optimizing Java code involving object creation, branching behavior, integration boundaries, workflows, state, extension points, coupling, or duplication—even when the user does not name a pattern. Trigger this skill to assess suitability, not to force a pattern: apply a pattern only when it solves an observed problem or credible change; otherwise keep or simplify the code.