Dagger と Dagger 2.0 の違いは何ですか?また、Google が既存のプロジェクトをフォークすることにしたのはなぜですか?
2514 次
3 に答える
6
Dagger 2 プレゼンテーションからの引用
Dagger 1 の問題点:
- 醜い生成コード
- ランタイム グラフ構成
- 非効率なグラフ作成
- 部分トレーサビリティ
- 地図のような API
ダガー 2 ソリューション:
- グラフ全体のコンパイル時の検証
- 簡単なデバッグ; プロビジョニングと 作成のための完全に具体的な呼び出しスタック
- 完全に追跡可能
- POJO API
- パフォーマンス
ダガー 2 の問題:
- 柔軟性が低い
- ダイナミズムがない
- Guice からの自動移行パスがない
于 2015-01-11T21:19:41.650 に答える
0
Dagger1.x : Square によって作成されたランタイム依存性注入フレームワークです。これは、実行時に依存関係を接続するリフレクション ベースのソリューションです。現在は、Google の Dagger2 を支持して廃止されています。
便利なリンク:
https://github.com/square/dagger
https://square.github.io/dagger/
いくつかの欠点は次のとおりです。
- Android ではさらに遅い、低速の Reflection API を使用します。
- パフォーマンスのオーバーヘッド
- 追跡可能性が低く、実行時のグラフ構成
Dagger2.x : Square によって作成され、現在は Google によって管理されている以前のバージョンを適応させたものです。Dagger2 は、コンパイル時に依存関係を接続するコードを生成するコンパイル時依存性注入フレームワークです。
Dagger2 の利点:
- リフレクション API は不要
- 手書きのように生成されたコードが改善されるため、追跡が容易になります。
- Dagger1 よりも約 10 倍速くパフォーマンスが向上します。
- モジュールの構成が少なくて済みます
Dagger2 の便利なリンク:
https://github.com/google/dagger
https://dagger.dev/
まだ dagger1 を使用している場合は、dagger1 から dagger2 への移行ガイドをご覧ください https://dagger.dev/dev-guide/dagger-1-migration.html
于 2020-10-21T06:21:01.007 に答える