【发布时间】:2021-08-09 10:05:24
【问题描述】:
假设我有 3 个 ChangeNotifierProviders“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 扩展 ChangeNotifier 实现 IAuth { ... }
类 Auth2 扩展 ChangeNotifier 实现 IAuth { ... }
类 Auth3 扩展 ChangeNotifier 实现 IAuth { ... }
但是我怎样才能提供这些提供程序,以便我将来可以毫无问题地替换它们呢?
ChangeNotifierProvider.value(value: Auth1())
一段时间后,我可能想用 Auth2 替换 Auth1,并且我想知道这是否是一个小问题
【问题讨论】:
-
为什么要更换提供者?
-
假设我有各种身份验证提供程序,一个使用 JWT,另一个使用其他身份验证机制。无论我使用什么身份验证提供程序,我都希望我的提供程序能够正常工作。
标签: flutter dart interface flutter-change-notifier