【发布时间】:2015-11-05 12:45:40
【问题描述】:
我刚开始使用 DI / Dagger 2。我有一个庞大的项目。为了尝试 dagger 2,我开始注入我的单例类“MyPreferences”。此类处理来自和去往 SharedPreferences 的所有应用操作。
在 MyPreferences 中自动注入 SharedPreferences 非常完美。
但是,我在大约 50 个课程中使用这个单例,我曾经这样做:
MyPreferences.getInstance(context).getXXXSetting();
我已经在几个类中将其更改为 dagger2 注入,它工作正常,但我发现自己一直在复制这些行:
@Inject
protected MyPreferences myPreferences;
protected void initInjection(Context context) {
((RootApplicationDi) context.getApplicationContext()).getComponent().injectTo(this);
}
// + call initInjection @ onCreate / constructor
对于这样一个简单的调用,我需要大约 35-40 个(超级)类中的所有这些行。我错过了什么吗?这真的是要走的路吗?
【问题讨论】:
-
你有一个运行良好的大型项目......只有一个单例。为什么要改变它?您希望通过切换到 DI 获得什么? (附:反对票不是我的)
标签: android dependency-injection dagger dagger-2