MediumTypeScript

Abstract Factory

TypeScriptDesign PatternsCreationalAbstract Factory

Produce families of related objects — a light-theme button always pairs with a light-theme checkbox, never a dark one — without the caller ever naming a concrete class.

Implement `LightFactory`/`DarkFactory`, each creating a matching Button + Checkbox pair, and getFactory(theme) to pick the right family.

solve('dark'){ button: 'dark-button', checkbox: 'dark-checkbox' }

Sample tests

Test #1Light family
Input: ["light"]
Output: {"button":"light-button","checkbox":"light-checkbox"}
Test #2Dark family
Input: ["dark"]
Output: {"button":"dark-button","checkbox":"dark-checkbox"}
Test #3Deterministic — same theme, same family
Input: ["light"]
Output: {"button":"light-button","checkbox":"light-checkbox"}