热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Pojo类的依赖注入

如何解决《Pojo类的依赖注入》经验,为你挑选了1个好方法。

目前我正在努力了解依赖注入.假设我有以下课程:

专辑

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依赖于AlbumArtistAlbum依赖Artist.假设我从数据库中获取所有必需的字段.目前,所有成员都通过构造函数传入.通常我会多次创建相同的专辑对象(在同一专辑的每首歌的循环中).这是依赖注入可以避免的吗?

我如何用Dagger2做到这一点?我真的不明白这一点.这只是"将构造函数"移出课堂吗?



1> David Medenj..:

如果你使用Dagger来创建你的模型类,你肯定做错了什么.

当然,理论上这是可能的.你仍然需要一个循环,但现在你将创​​建你的组件并传入参数,以便他们可以分别创建他们的Artist,他们的Album和他们的Song.一个ArtistComponent是它提供ArtistAlbumComponent,等等.

最后你仍然有一个循环,但这次只是创建组件来创建你需要的对象.你在这里获得的唯一的东西是很多开销和比以前更多的对象创建.所以不,请不要在这里使用Dagger.


依赖注入旨在将您的业务逻辑链接在一起.如果您有ArtistDao从数据库中读取的内容,那么您可能还ArtistPresenter需要使用DAO才能工作.ArtistDao仍然可以读取和创建艺术家(数据模型),但您可以使用Dagger创建DAO并将其传递给演示者.

这只是"将构造函数"移出课堂吗?

匕首不会神奇地创造物体.如果您有依赖项,您仍然在构造函数中声明该依赖项.Dagger将使用正确的参数为您调用构造函数,并可能将创建的对象保留在以后(范围).

依赖框架旨在减少样板,创建一个对象,将其传递给下一个对象,等等.它们将解析您的依赖关系,并保持它们.


推荐阅读
author-avatar
华华eva3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有