Method overrides make components more difficult to use.
Imagine you’re adding an optional text color parameter to a component. You might be tempted to add an override:
But someone will later add another override:
The component is splintering. It’s not obvious which override to use and we need a lot of boilerplate behind the scenes to redirect to the designated initializer.
Instead, always expose all parameters in a single designated initializer and document which are optional.
If there are too many parameters, a useful pattern is a “style struct”. For example, see
Using aggregate initialization, it’s easy to initialize the style struct with only some parameters: