Uso de Factory #26
-
Olá pessoal, class WeSlideController extends ValueNotifier<bool> {
/// WeSlideController Construction
// ignore: avoid_positional_boolean_parameters
WeSlideController([bool initial = false]) : super(initial);
/// show WeSlide Panel
void show() => value = true;
/// hide WeSlide Panel
void hide() => value = false;
/// Returns if the WeSlide Panel is opened or not
bool get isOpened => value;
/// Create a controller to be used as footer controller
factory WeSlideController.footer() {
return WeSlideController(true);
}
} Porém a mesma classe irá fazer o controle de dois objetos, um painel e um footer. Gostaria de saber a opinião de vocês se existe a necessidade de utilizar uma Com factory final _controller = WeSlideController();
final _footerController = WeSlideController.footer(); Sem Factory final _controller = WeSlideController();
final _footerController = WeSlideController(false); Qual a opinião de vocês ? |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
Em minha opinião nesse caso tanto faz, pelo fato de ser um uso muito simples. Acredito que em um caso que você precisasse realizar algumas validações mais sofisticadas o uso do factory seria mais adequado. PS: Minha opinião |
Beta Was this translation helpful? Give feedback.
-
Não concordo com relação a declarar dois objetos idênticos ao mesmo tempo, tipo então seria estranho quando tenho vários Agora com relação à leitura, com |
Beta Was this translation helpful? Give feedback.
-
Acho que parâmetro nomeado nesse caso é mais legível.
|
Beta Was this translation helpful? Give feedback.
-
É desaconselhável usar parâmetros booleanos não nomeados. Em vez disso, use parâmetros nomeados ou faça com A decisão disso tem mais a ver com exaustividade. Algumas APIs excluem outras, e nesse caso é aconselhável usar factory para impedir que o usuário gere um caso inconsistente através dos parâmetros, algo que vai, necessariamente, causar um bug, erro em runtime ou, na melhor das hipóteses, confusão. No caso em que não temos APIs excludentes, eu usaria o parâmetro nomeado. |
Beta Was this translation helpful? Give feedback.
-
Muito obrigado pessoal. |
Beta Was this translation helpful? Give feedback.
Não concordo com relação a declarar dois objetos idênticos ao mesmo tempo, tipo então seria estranho quando tenho vários
TextEditingController
.Agora com relação à leitura, com
factory
fica melhor, pode ser usado umconstrutor nomeado
nesse caso também ou até mesmoparâmetro nomeado
.