4

次のサービスがあります。

  1. SecuredStorageService()
  2. ApiService({this.authService})
  3. AuthService({this.securedStorageService, this.apiService})
  4. 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 と同じように、一種の依存性注入を行うことです。

4

1 に答える 1