MediumPro challengePythonJavaScriptTypeScript
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"}