Size: a a a

Dart & Flutter по-русски

2021 May 30

DY

Daniyil Yevtyushkin in Dart & Flutter по-русски
Не обязательно один

К тому же под провайдером может быть другой провайдер который будет предоставлять новый инстанс
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
сингтон это паттерн одиночка - который обычно реализован как Class.getInstance() или просто Class.instance где етсь геттеры
Если чел юзает типа MyBloc.instace в коде своем типа где тов. виджетеBlob.instance
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
не понял почему пол мессаги отрезало)
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
build() => BlocBuilder(bloc: Bloc.instance, ...
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
через синглтон то етсь то праовадер не нужен
источник

В

Владимир in Dart & Flutter по-русски
Ага
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
если юзаете ссингтон с помозьб провайдера то надо юзать ен create
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
а value(value: Bloc.instance)
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
но смысл теряется
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
тогда прсото где то вврезу Provider(create: () => Bloc()
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
будет вам тот же синглтон ток без метода инстанс и создан и закрыт пярм тут
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
вот стати да, важный моент, что до какой то ветки вниз может быть один инстанс, а дальше напсиали опять Provider<Bloc> и прокинули другой иснтанс)
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
хз правда мне такого ни разу не понадобилось) но можно
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
в том то и дело, что если по уму напсиано все аля энтерпрайз то будет как, типа:

Provider<UserBloc>(create: (context)=> UserBlocImpl()
ну или
Provider<IUserBloc>(create: (context)=> UserBloc()
кто ка крпивык, то етсь по интерфейсу, и подмена модели для тестов там или хз, может у вас фабрика там и от каких то случаем иос/андроид/веб/десктоп - разные имплементации
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
вы легко сделатее это в одном месте
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
или тупо ну вот либа умерла или что то новое предумалив. реализации и заменили вв провайдере
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
а вот если у вас по всем виджетм напихано аля UserBloc.getInstance то надо везде менять, и если в случае полной замены то омжно тупо так же нвоый класс обозвать и обойтись малой кровью) то в случае разных имплементаций по условию уже гемор) есл ипонадобиться разделить во временем)
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
хотя, тоже можно
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
вынести UserBloc создать другой класс, а тот что был обозвать UserBlocWeb и так же в гетИнстанс реализовтаь дсотуп к нужному))
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
карчое DI бесполезный паттерн выходит 😄
источник