我有带有加载、保存、更新数据的方法的数据对象。然后我有对象可以对这些数据进行更复杂的操作,为此,它们需要来自数据对象的详细数据。
所以我开始向数据对象添加方法来回答操作对象需要知道的特定问题。操作对象仅具有与操作或某些功能严格相关的方法,而数据对象的信息由它详细说明。操纵对象询问并且被操纵对象响应。我一开始就是这么想象的。然后我意识到它们也可以是操作对象的方法或扩展方法。
我觉得数据对象开始有太多与特定功能相关的方法,而且还会有更多。由于这些特征主要由操作对象管理,它们可以在它们之间移动和分布。问题是这些方法中的一些被不同的操纵对象使用,并且操纵对象有足够多的与操纵特别相关的方法。因此,另一种选择是将它们实现为静态扩展方法,并将它们放置在执行此类工作的命名空间中(因此它们仅在工作区域可见,但可以在需要时被其他对象调用)。
问题是在哪里放置以下方法:
- 提供从数据对象信息(公共信息)阐述的信息,无需任何操作
- 是针对特定功能的一个或几个其他对象的特定用途(主要是操作,也有查询和呈现)
- (有些使用辅助业务对象,有些只依赖于数据对象,不需要其他任何东西)
他们应该属于:
- 数据对象
- 操纵对象
- 到业务命名空间中的静态助手类?
我想答案在很大程度上取决于我们正在讨论的方法、应用程序的设计等。所以我理解具体的建议可能很难给出,但我会很感激任何帮助我做出决定的提示和其他情况。
简而言之:
为了选择将方法放在哪里,我应该问自己什么标准或什么问题?