oop - 我应该将东西注入(inject)我的实体吗?

标签 oop

在使用 IoC 容器时,将其他类注入(inject)其中是否被认为是好的设计?即持久性类

最佳答案

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

关于oop - 我应该将东西注入(inject)我的实体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/98801/

相关文章:

api - 将持久性与域对象解耦的方法?

javascript - 如何在我的类中扩展 mootools 中的 Dom 元素

C++ 与动态内存分配混淆

java - 默认构造函数与内联字段初始化

c# - 为什么 C# 不提供 C++ 风格的 'friend' 关键字?

php - 将对象转换为其子类之一(协变返回类型)的正确 OO 方法是什么?

java - 使用不同的输入实例化一个类

java - Java中的类聚合关系只能通过实例对象来实现吗?

php - Symfony 2 表单错误

python - Python中如何从当前对象的方法中调用另一个对象的方法