skills/design-patterns/creationals/factory-method/SKILL.md
Teaches and applies the Factory Method creational design pattern — providing an interface for creating objects in a superclass, allowing subclasses to decide which class to instantiate. Trigger: When decoupling object creation from usage or implementing extensible creation logic.
npx skillsauth add johnnystefan/test-saas-business pattern-factory-methodInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Provides an interface for creating objects in a superclass but allows subclasses to alter the type of objects that will be created. It decouples the business logic from the concrete classes it needs to instantiate.
new ConcreteClass() calls that make the code rigid.// Product Interface
interface Transport {
deliver(): string;
}
// Concrete Products
class Truck implements Transport {
deliver() {
return 'Delivering by land in a box.';
}
}
class Ship implements Transport {
deliver() {
return 'Delivering by sea in a container.';
}
}
// Creator Class
abstract class Logistics {
public abstract createTransport(): Transport;
public planDelivery(): string {
const transport = this.createTransport();
return transport.deliver();
}
}
// Concrete Creators
class RoadLogistics extends Logistics {
public createTransport(): Transport {
return new Truck();
}
}
class SeaLogistics extends Logistics {
public createTransport(): Transport {
return new Ship();
}
}
tools
Zustand 5 state management patterns. Trigger: When implementing client-side state with Zustand (stores, selectors, persist middleware, slices).
databases
Zod 4 schema validation patterns. Trigger: When creating or updating Zod v4 schemas for validation/parsing (forms, request payloads, adapters), including v3 -> v4 migration patterns.
development
Vitest unit testing patterns with React Testing Library. Trigger: When writing unit tests for React components, hooks, or utilities.
tools
Vite 8 (Rolldown-powered) build tool configuration, plugin API, SSR, and migration guide. Trigger: When working with vite.config.ts, Vite plugins, building libraries, or SSR apps with Vite.