我不确定在应用程序中应该使用DI的用例。我知道注射服务 PlaceService 或者 CalculationService ETC非常适合,但我也应该像DI一样创建我的域对象 User?如果是 User 只有一个构造函数,它需要一个和姓氏。这可以用DI解决吗?

我应该使用di创建设置/列表接口的实例,还是纯粹的过度杀伤?

我主要使用Guice。

有帮助吗?

解决方案

我使用的规则通常是有利于依赖注入,除非可以用纯原始值构造对象,并且没有 /最小的机会可以被其他实现替换。

但是,对于域对象,特别是如果您的对象不构成 贫血域模型, ,即,对象只是get子和固定器的袋子,例如,拥有可以将自己坚持到数据存储等的对象是有用的。对于这些对象,依赖性注入和 药膏 可以是强大的组合。

GUICE具有特定的解决方案,以解决您的用户对象等对象所提出的问题类型 辅助, ,尽管其他轻型容器也可以使用类似的东西,或者使用建筑商或适配器图案的东西。

其他提示

IG0774的答案是一个很好的起点。此外,我想提供此经验法则:

在术语中 域驱动的设计, ,你应该为 服务, ,但不是为了 实体 或者 值对象.

换句话说,di与概念上长期存在的无状态对象非常吻合,通常有一个或已知的数字。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top