Olá, Gidalti! Vou tentar te ajudar.
Na declaração das variáveis coloque uma interrogação (?) logo após o tipo. Veja no exemplo abaixo:
final TextEditingController? controlador;
final String? rotulo;
final String? dica;
final IconData? icone;
A interrogação significa que a variável daquele determinado tipo pode receber um valor null (nulo). Dessa forma, o construtor fica flexível, ou seja, não vai obrigar que você passe todos os parâmetros.
//Construtor:
Editor({this.controlador, this.rotulo, this.dica, this.icone});
Note o exemplo abaixo, o primeiro Editor utiliza o controlador, a dica e o rotulo (3 dos 4 declarados). Já o segundo utiliza a dica, controlador, rotulo e o icone (4 dos 4 declarados). Note que a ordem não impacta pois os argumentos são determinados (nome e valor).
//Primeiro Editor:
Editor(
controlador: _controladorCampoNumeroConta,
dica: '0000',
rotulo: 'Número da Conta'),
//Segundo Editor: Editor(
dica: '0.00',
controlador: controladorCampoValor,
rotulo: 'Valor',
icone: Icons.monetizationon),