Patterns/strategy

Strategy Pattern pattern for C development

majiayu000 6ef4fd4 2 files · 1.4 KB Updated 567 repo stars

File contents

Strategy Pattern

Define a family of algorithms as interchangeable function pointers. Clients select which algorithm to use at runtime without changing calling code.

ikigai Application

LLM Provider abstraction: Each provider (OpenAI, Anthropic, Google) implements same interface:

typedef struct {
    res_t (*send)(void *ctx, ik_message_t **msgs, size_t count);
    res_t (*stream)(void *ctx, ik_message_t **msgs, chunk_cb cb);
} ik_llm_provider_t;

Selection: Config determines which provider vtable is used. REPL calls through interface, unaware of provider.

Testing: Inject mock provider that returns canned responses.

Future: Tool execution strategies, different database backends.

majiayu000/claude-skill-registry-data/tree/main/development/patternsstrategy commit 6ef4fd4813

Frequently asked questions

npx skillmds add majiayu000/patterns-strategy