3

修飾子を使用することと、必要な実装クラスを正確に指定することの違いは何ですか?

この質問は以下からコピーされています: http://docs.jboss.org/weld/reference/latest/en-US/html/injection.html

4

2 に答える 2

1

一般的に、修飾子はパーティ間のデカップリングのレイヤーを形成します。これにより、一方の実装を変更せずに、もう一方の実装を変更できます。

However, I find it very rare to actually have more than one implementation class. 

これはユースケースによって異なります。ビジネスロジックのほとんどの「内部」クラス(2つまたは3つではなく1つ)にはおそらく適切ですが、通常、複数の実装を持つBeanタイプMailServiceがいくつかあります。

@Inject @LDAP
private AuthenticatorService

vs

@Inject @FormBased
private AuthenticatorService

さまざまなデプロイメントシナリオにさまざまなBeanをモック/提供することについて はすでに説明しました。

また、ほぼ確実に、修飾子が「ストーリーの一部」を伝え、コードを読み取り可能で構造化する、このようなロジックがあります。

@Inject @Authenticated
private User user;
于 2012-07-24T04:06:35.420 に答える
0

機能的には、それらは同じです。ただし、実際に複数の実装クラスがあることは非常にまれです。クラスの単体テストを行う場合、依存性注入がはるかに役立つことがわかります。依存性注入を使用すると、実行時に通常の実装インスタンスを簡単に注入できます。次に、単体テストで、テストするオブジェクトを手動で作成するときに、モック実装を簡単に渡すことができます。

于 2012-07-23T22:11:23.930 に答える