4

Dagger と Dagger 2.0 の違いは何ですか?また、Google が既存のプロジェクトをフォークすることにしたのはなぜですか?

4

3 に答える 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 に答える