簡単にテストできるオブジェクトを作成しようとしているときに、このようなコンストラクターが作成されました。
public UserProvider(
IFactory<IContainer> containerFactory,
IRepositoryFactory<IUserRepository> userRepositoryFactory,
IFactory<IRoleProvider> roleProviderFactory,
IFactory<IAuthenticationProvider> authenticationProviderFactory,
IFactory<IEmailAdapter> emailAdapterFactory,
IFactory<IGuidAdapter> guidAdapterFactory,
IRepositoryFactory<IVehicleRepository> vehicleRepositoryFactory,
IRepositoryFactory<IUserVehicleRepository> userVehicleRepositoryFactory,
IFactory<IDateTimeAdapter> dateTimeAdapterFactory)
これは、オブジェクトが持つすべての依存関係であり、私が持っている最も忙しいコンストラクターです。しかし、誰かがこれを見た場合、それは本当に大きなwtfを上げるでしょうか?
私の目的は、テストが簡単なロジックを作成することでした。かなりの量のモックが必要ですが、私のロジックを検証するのは確かに非常に簡単です。しかし、私は私があまりにも多くの良いことをしてしまうかもしれないのではないかと心配しています。
これがiocを実装しているほとんどの人にとって正常であるかどうか私は興味があります。
私が行うことができるいくつかの単純化があります-内部状態がないのでアダプターを直接渡すことができるので、いくつかのアダプターの工場を実際に渡す必要はありません。しかし、私はパラメータの数に関して本当に質問しています。
またはそれ以上に、私が船外に出ないという保証を探しています;)
しかし、私はUserProviderクラスを少し分解する必要があるという印象を持ち始めていますが、その後、この懸念を引き起こしているのはさらに多くの配管になってしまいます。
これらの懸念がある場合、サブ質問はおそらくサービスロケーターパターンの使用を検討する必要があると思いますか?