mcpField
D
design-patterns-implementation

design-patterns-implementation

github.com/aj-geddesDevelopment373597 installsUpdated 34w ago
Repository

About design-patterns-implementation

A reference skill for applying established design patterns to maintainable, extensible, and testable software. It is intended for developers addressing architectural problems, decoupling components, or reviewing code, with guides covering seven patterns and practices.

Key features

  1. 01Guides to seven design patterns
  2. 02TypeScript implementation example
  3. 03Advice on SOLID and dependency injection
  4. 04Guidance on avoiding over-engineering

Use cases

  1. 01Addressing recurring architectural problems
  2. 02Designing extensible plugin systems
  3. 03Improving code testability and maintainability

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill design-patterns-implementation

After installing, type/design-patterns-implementationin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
decorator-pattern.md
dependency-injection.md
factory-pattern.md
observer-pattern.md
repository-pattern.md
singleton-pattern.md
strategy-pattern.md
scripts/
scaffold-tests.sh
templates/
test-template.js

Details

From the project README

Design Patterns Implementation

Table of Contents

Overview

Apply proven design patterns to create maintainable, extensible, and testable code architectures.

When to Use

  • Solving common architectural problems
  • Making code more maintainable and testable
  • Implementing extensible plugin systems
  • Decoupling components
  • Following SOLID principles
  • Code reviews identifying architectural issues

Quick Start

Minimal working example:

class DatabaseConnection {
  private static instance: DatabaseConnection;
  private connection: any;

  private constructor() {
    this.connection = this.createConnection();
  }

  public static getInstance(): DatabaseConnection {
    if (!DatabaseConnection.instance) {
      DatabaseConnection.instance = new DatabaseConnection();
    }
    return DatabaseConnection.instance;
  }

  private createConnection() {
    return {
      /* connection logic */
    };
  }
}

// Usage
const db1 = DatabaseConnection.getInstance();
const db2 = DatabaseConnection.getInstance();
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Singleton PatternSingleton Pattern
Factory PatternFactory Pattern
Observer PatternObserver Pattern
Strategy PatternStrategy Pattern
Decorator PatternDecorator Pattern
Repository PatternRepository Pattern
Dependency InjectionDependency Injection

Best Practices

✅ DO
  • Choose patterns that solve actual problems
  • Keep patterns simple and understandable
  • Document why patterns were chosen
  • Consider testability
  • Follow SOLID principles
  • Use dependency injection
  • Prefer composition over inheritance
❌ DON'T
  • Apply patterns without understanding them
  • Over-engineer simple solutions
  • Force patterns where they don't fit
  • Create unnecessary abstraction layers
  • Ignore team familiarity with patterns

Comments

Markdown supported