c# - 我应该有单独的输入和输出对象吗?这个模式有名称吗?

标签 c# java .net sql design-patterns

我正在寻找这种模式的名称并了解这种设计的原因。

我有:

  1. 输入数据(来自数据库):放入 对象,包含数据 对应于表行和 还有它的外国物体 键。数据可以来自数据库或 从单元代码生成 测试。

  2. 计算器:分析, 处理并修改这些数据。我 希望输入数据保留在外部 到这个计算器能够 使用生成的数据对其进行单元测试 来自代码或来自 XML 文件而不是数据库。

  3. 结果数据:然后我需要更新 我的数据库,还有那些结果 可以用来验证 单位情况下的预期结果 测试。

这是一个关注点分离模式吗?这里还涉及其他已知模式吗?

包含结果数据的结果对象是否应该与输入数据位于同一对象中,并且在开始时为 null,然后在处理后更新,或者结果对象应该完全独立于输入对象,为什么?

最佳答案

我建议您的输出对象完全独立于输入对象。否则,您的输入对象必须“了解”输出对象。这似乎不合理,因为每当您更改输出对象时,您都会更改输入对象。或者您可能想要多个不同的输出对象。然后输入对象需要了解所有输出对象,或者您有一个需要转换的非类型化引用(即 .NET 中的 object)。

输入对象正是这样的:它表示从数据存储或其他地方接收到的数据。输入数据通过某种转换来创建某种输出对象,该对象可能与输入对象关系不大。

简而言之,输入对象没有充分的理由了解输出对象。事实上,输入对象甚至不应该关心输出对象是否存在。向输入对象提供这些信息将导致不必要的耦合,这将使将来修改代码变得更加困难。

关于c# - 我应该有单独的输入和输出对象吗?这个模式有名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666253/

相关文章:

java - JPA/获取实体列表作为引用

c# - 为什么使用带破折号图案的笔会导致 WPF 自定义 2D 绘图中出现巨大(!)性能下降?

c# - 等待句柄和 System.Threading.Tasks 命名空间

c# - 占位符外的母版页内容

c# - 如果我调用自己的类 "Vector"会引起问题吗?

java - JDK 1.7 vs JDK 1.6 内部类继承区别

JavaFX 改变 ImageView 的颜色

.net - 在没有 IOC 的 MVC 3 中保留请求范围内的值?

jquery - $.get 在我的服务器上不起作用

C# 图表适合一个选项卡