工厂类 - 我应该在这里用数据填充我的对象吗?

本文关键字:我的 填充 对象 数据 我应该 在这里 工厂 | 更新日期: 2023-09-27 17:47:22

>im 创建一个将构造并返回对象的工厂类。 我通常会在数据访问层执行所有数据工作,但我认为我无法达到我的目标,并且仍然这样做。 我想做的是使用 SQLDataReader 快速读取数据信息并填充要从工厂返回的对象。 这是一个愚蠢的想法吗? 有没有更好的方法? 如果可能的话,我不希望只从 DAL 返回数据集,还是性能与可维护性的问题?

工厂类 - 我应该在这里用数据填充我的对象吗?

在大多数情况下,

这是一个好主意,因为这种方式提供了两个主要好处:

  1. 这样,您可以将数据访问和业务逻辑分开,这意味着如果您更改数据库设计,则不需要更改上层算法。

  2. 从 OO 的角度来看,您正在将一些纯数据转换为对象,并且还可能向对象添加行为,这使得代码更易于维护和重用。

如果您确定要使用从 SQLDataReader 加载的所有数据,那么是的,您可以在工厂的施工时执行此操作。 但是,如果数据集有许多字段,其中只有少数会被使用,那么在调用访问器时按需加载数据将更好地利用资源。

也就是说,我建议你在手头有所有的"零件"后把它装进工厂,如果它不完全正确,你就会知道需要修复什么。 始终从可能可行的最简单的事情开始。

我想说这取决于您对工厂的预期使用。 如果这是数据访问层上的工厂,它将用于用数据库中的数据填充业务对象,那么是的,这就是执行此操作的地方。 (IRepository模式是这样的...有点)。

如果您的工厂不打算靠近您的数据访问代码,我会将它们分开。 请记住单一责任原则:对象应该只有一个更改的理由。 如果工厂只是用数据填充对象,那么这是一个适当的用途,但是如果除了做其他事情之外,它还用数据填充对象,那么最好不要添加数据内容。

无论你走哪条路,都会有权衡,所以一般来说,我喜欢尽可能长时间地保持对象尽可能简单。