次のサービスがあります。
SecuredStorageService()
ApiService({this.authService})
AuthService({this.securedStorageService, this.apiService})
RegisterService({this.apiService, this.securedStorageService})
それが私を書くように導きました:
providers: [
Provider<SecuredStorageService>.value(value: SecuredStorageService()),
ProxyProvider<AuthService, ApiService>(
builder: (_, auth, __) => ApiService(authService: auth),
),
ProxyProvider2<ApiService, SecuredStorageService, RegisterService>(
builder: (_, api, storage, __) => RegisterService(apiService: api, securedStorageService: storage),
),
ProxyProvider2<ApiService, SecuredStorageService, AuthService>(
builder: (_, api, storage, __) => AuthService(apiService: api, securedStorageService: storage),
),
],
この時点までは、すでに乱雑に見えることがわかります。しかし、そうではありません。アプリを実行すると、次のエラーが表示されます。
では私は何をすべきか?ProxyProvider
すべてのsaの前に追加しProvider<AuthService>
ます。しかし、その後、AuthService が 2 回構築されています。これは、単一のインスタンスであるという点を完全に失います (そうではありませんか?)。
私の主な目標は、Angular や Laravel と同じように、一種の依存性注入を行うことです。