#flutter #dart #interface #flutter-change-notifier
Вопрос:
Допустим, у меня есть 3 поставщика идентификаторов изменений «Auth1″,»Auth2″,»Auth3». Я хочу,чтобы все они реализовали login (), signup (), IsAuthenticated().
Так что я могу заменить одного провайдера другим, когда захочу.
//Interface
class IAuth {
Future<void> signUp(String email, String password)=>throw UnimplementedError();
Future<void> login(String email, String password) => throw UnimplementedError();
Future<bool> isAuthenticted() => throw UnimplementedError();
void logout() => throw UnimplementedError();
}
Я могу определить
класс Auth1 расширяет определитель изменений, реализует IAuth { … }
класс Auth2 расширяет определитель изменений, реализует IAuth { … }
класс Auth3 расширяет определитель изменений, реализует IAuth { … }
Но как я могу предоставить поставщиков услуг таким образом, чтобы я мог заменить их без каких-либо проблем в будущем?
ChangeNotifierProvider.значение(значение: Auth1())
Через некоторое время я, возможно, захочу заменить Auth1 на Auth2, а также я хочу знать, является ли это тривиальным вопросом
Комментарии:
1. Почему вы хотите заменить поставщиков услуг?
2. Предположим, допустим, у меня есть различные поставщики аутентификации, один из которых использует JWT, другой использует какой-то другой механизм аутентификации. Я хотел, чтобы мой провайдер работал независимо от того, какого поставщика аутентификации я использую.
Ответ №1:
Это может быть проще с помощью ProviderScope в RiverPod. (RiverPod был написан автором Provider для решения нового круга проблем.)