Dependency injection Pojo类的依赖注入
目前我正在努力理解依赖注入。假设我有以下课程: 专辑Dependency injection Pojo类的依赖注入,dependency-injection,dagger-2,Dependency Injection,Dagger 2,目前我正在努力理解依赖注入。假设我有以下课程: 专辑 public class Album { private String id; private String name; private String cover; private Artist artist; } 歌曲 public class Song { private String id; private String title; private Artist artist
public class Album {
private String id;
private String name;
private String cover;
private Artist artist;
}
歌曲
public class Song {
private String id;
private String title;
private Artist artist;
private Album album;
}
艺术家
public class Artist {
private String id;
private String name;
}
所以歌曲
取决于专辑
和艺术家
,专辑
取决于艺术家
。假设我从数据库中获取所有必填字段。当前,所有成员都是通过构造函数传入的。通常,我会多次创建相同的唱片对象(在同一张唱片的每首歌曲的循环中)。这是依赖注入可以避免的吗
我该如何使用匕首2?我真的不明白这一点。这只是将构造函数移出类吗?如果使用Dagger创建模型类,那么肯定是做错了什么 当然,理论上这是可能的。您仍然需要一个循环,但现在您需要创建组件并传入参数,以便它们可以分别创建自己的
艺术家
、专辑、歌曲。一种ArtistComponent
,它将其Artist
提供给AlbumComponent
等
最后,您仍然有一个循环,但这次只是创建组件来创建所需的对象。您在这里获得的唯一好处是比以前更多的开销和更多的对象创建。所以不,请不要在这里使用匕首
依赖注入旨在将您的业务逻辑链接在一起。如果您有一个从数据库读取的
ArtistDao
,那么您可能还有一个ArtistPresenter
,它需要所述DAO才能工作。ArtistDao仍然读取并创建艺术家(数据模型),但您可以使用Dagger创建DAO并将其传递给演示者
这只是将构造函数移出类吗
匕首不会神奇地创造物体。如果您有一个依赖项,您仍然可以在构造函数中声明该依赖项。Dagger将为您调用具有正确参数的构造函数,并可能在以后保留创建的对象(范围)
依赖关系框架旨在简化样板文件,即创建一个对象,然后将其传递给下一个对象,等等。它们将解决依赖关系,并保持它们不变。如果使用Dagger创建模型类,则肯定是做错了什么 当然,理论上这是可能的。您仍然需要一个循环,但现在您需要创建组件并传入参数,以便它们可以分别创建自己的
艺术家
、专辑、歌曲。一种ArtistComponent
,它将其Artist
提供给AlbumComponent
等
最后,您仍然有一个循环,但这次只是创建组件来创建所需的对象。您在这里获得的唯一好处是比以前更多的开销和更多的对象创建。所以不,请不要在这里使用匕首
依赖注入旨在将您的业务逻辑链接在一起。如果您有一个从数据库读取的
ArtistDao
,那么您可能还有一个ArtistPresenter
,它需要所述DAO才能工作。ArtistDao仍然读取并创建艺术家(数据模型),但您可以使用Dagger创建DAO并将其传递给演示者
这只是将构造函数移出类吗
匕首不会神奇地创造物体。如果您有一个依赖项,您仍然可以在构造函数中声明该依赖项。Dagger将为您调用具有正确参数的构造函数,并可能在以后保留创建的对象(范围)
依赖关系框架旨在简化样板文件,即创建一个对象,然后将其传递给下一个对象,等等。它们将解决您的依赖关系,并保持它们不变