Abstract factory
Суть
Abstract Factory — порождающий паттерн: интерфейс для создания семейства связанных объектов без указания их конкретных типов. Клиент получает фабрику и просит у неё «кнопку», «фон», «шрифт», не зная, светлая это тема или тема для людей с особыми потребностями. Главная гарантия — объекты из одной фабрики совместимы между собой: нельзя случайно смешать светлый фон с тёмным текстом.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep