Pojo 的依赖注入 类
Dependency injection of Pojo classes
目前我正在尝试了解依赖注入。假设我有以下 classes:
专辑
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;
}
所以 Song
取决于 Album
和 Artist
而 Album
取决于 Artist
。假设我从数据库中获取了所有必需的字段。目前所有成员都是通过构造函数传入的。通常我会多次创建相同的专辑对象(在同一专辑的每首歌曲的循环中)。这是可以通过依赖注入避免的事情吗?
如何使用 Dagger2 执行此操作?我真的不明白这一点。 class 中只有 "moving the constructor" 个吗?
如果你使用 Dagger 来创建你的模型类你肯定做错了什么。
当然,理论上这是可能的。您仍然需要一个循环,但现在您将创建组件并传入参数,以便它们可以分别创建 Artist
、Album
和 Song
。 ArtistComponent
将其 Artist
提供给 AlbumComponent
,等等
最后你还是有一个循环,但这次只是创建组件来创建你需要的对象。您在这里获得的唯一东西是大量的开销和比以前更多的对象创建。所以不,请不要在这里使用 Dagger。
依赖注入旨在link您的业务逻辑。如果你有一个从数据库中读取的 ArtistDao
,你可能还有一个需要所述 DAO 工作的 ArtistPresenter
。 ArtistDao 仍然读取和创建艺术家(数据模型),但您可以使用 Dagger 创建 DAO 并将其传递给演示者。
Is this only "moving the constructor" out of the class?
Dagger 不会神奇地创建对象。如果您有依赖关系,您仍然会在构造函数中声明该依赖关系。 Dagger 将使用正确的参数 为您调用构造函数 并可能保留创建的对象供以后使用(范围)。
依赖框架旨在减少样板文件,您可以在其中创建一个对象,将其传递给下一个对象,等等。它们将解决您的依赖关系,并保留它们。
目前我正在尝试了解依赖注入。假设我有以下 classes:
专辑
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;
}
所以 Song
取决于 Album
和 Artist
而 Album
取决于 Artist
。假设我从数据库中获取了所有必需的字段。目前所有成员都是通过构造函数传入的。通常我会多次创建相同的专辑对象(在同一专辑的每首歌曲的循环中)。这是可以通过依赖注入避免的事情吗?
如何使用 Dagger2 执行此操作?我真的不明白这一点。 class 中只有 "moving the constructor" 个吗?
如果你使用 Dagger 来创建你的模型类你肯定做错了什么。
当然,理论上这是可能的。您仍然需要一个循环,但现在您将创建组件并传入参数,以便它们可以分别创建 Artist
、Album
和 Song
。 ArtistComponent
将其 Artist
提供给 AlbumComponent
,等等
最后你还是有一个循环,但这次只是创建组件来创建你需要的对象。您在这里获得的唯一东西是大量的开销和比以前更多的对象创建。所以不,请不要在这里使用 Dagger。
依赖注入旨在link您的业务逻辑。如果你有一个从数据库中读取的 ArtistDao
,你可能还有一个需要所述 DAO 工作的 ArtistPresenter
。 ArtistDao 仍然读取和创建艺术家(数据模型),但您可以使用 Dagger 创建 DAO 并将其传递给演示者。
Is this only "moving the constructor" out of the class?
Dagger 不会神奇地创建对象。如果您有依赖关系,您仍然会在构造函数中声明该依赖关系。 Dagger 将使用正确的参数 为您调用构造函数 并可能保留创建的对象供以后使用(范围)。
依赖框架旨在减少样板文件,您可以在其中创建一个对象,将其传递给下一个对象,等等。它们将解决您的依赖关系,并保留它们。