我应该将东西注入到我的实体中吗?

the*_*off 5 oop

当使用IoC容器时,向其中注入其他类是否被认为是好的设计?即持久化类

Bil*_*ser 3

一般来说我建议不要这样做。实体就是这样,应该代表核心领域的一些可识别且重要的部分。他们应该承担一项责任,并且非常非常擅长这样做。如果实体需要额外的服务才能完成任务(比如持久化本身),那么您就开始让基础设施之类的东西渗透到您的域中。即使 Invoice 能够计算其帐单价值的概念也不一定是 Invoice 类的责任。它可能需要销售税、运费、客户折扣等信息。一旦您打开这些门并尝试开始将这些项目带入您的发票实体中,它就会成为一切类。领域服务更适合协调实体并向它们提供服务。基础设施服务更适合持久性和外部通信之类的事情。这两种服务都可以通过 IoC 注入其他服务(并鼓励它们本身不会成为臃肿软件)。