Pick your poison

You're designing a UI toolkit that must support multiple platform backends (Windows, macOS, Linux). Each platform needs its own set of widgets (buttons, text fields, scroll bars) that are visually consistent with one another. Which creational pattern best fits this requirement?

A

Prototype: clone a template widget and modify its platform-specific fields after copying

B

Factory Method: define a create() method in a base class and let each platform subclass override it

C

Abstract Factory: define a factory interface that produces families of related widgets per platform

D

Builder: construct each widget step by step, configuring platform-specific properties at each stage