提供与Dagger2的依赖关系

时间:2015-12-22 14:01:10

标签: android google-maps dependency-injection dagger-2

我正在使用library(示例为假设,以简化问题,但实质上保持不变)包装谷歌地图,比如谷歌地图的装饰师,并添加MarkerManager,删除标记等。

//库

Microsoft.TeamFoundation.Build.Workflow.dll

在应用中,我想使用自己的import com.google.android.gms.maps.GoogleMap; public class DelegatingGoogleMap { GoogleMap map; MarkerManager manager; public class DelegatingGoogleMap(GoogleMap map){ this.map = map; this.manager = new MarkerManager(map); } } import com.google.android.gms.maps.GoogleMap; public class MarkerManager { public class GoogleMap map; public class MarkerManager(GoogleMap map) { this.map = map; } }

//应用

MarkerManager's

所以我想使用Dagger 2将MarkerManagerExtended注入DelegatingGoogleMap(属性注入)。

public class MarkerManagerExtended extends MarkerManager {

    public class MarkerManager(GoogleMap map) {
        super(map);
    }

}

不确定,Dagger在这种情况下使用是个好主意。

问题是,public class DelegatingGoogleMap { GoogleMap map; @Inject MarkerManager manager; public class DelegatingGoogleMap(GoogleMap map){ this.map = map; } } 要提供Module的实例,我必须将com.google.android.gms.maps.GoogleMap传递给构造函数。

MarkerManagerExtended

获取GoogleMaps看起来并不容易,所以我不确定是否应该在 @Module public class MapModule { @Provides public MarkerManager providesMarkerManager() { return new MarkerManagerExtended(map); //map instance of com.google.android.gms.maps.GoogleMap } } 中写这个。

Module

如何将MarkerManager注入DelegatingGoogleMap?

0 个答案:

没有答案