更新命令 - 架构问题

时间:2009-10-13 21:05:51

标签: c# architecture

情形:

您需要更新客户的2个字段

您的项目中没有任何方法UpdateCustomer

您是否应该创建一个名为UpdateCustomer(客户客户)的方法,该方法可以接收完整的客户对象并对所有字段进行全部更新

例如

(显然这个名字只是为了在这里发布)创建一个UpdateCustomer2Fields(字符串月,字符串年)并只更新这两个字段

我可以想象一下UpdateCustomerThis UpdateCustomerThat

但如果我只公开一个UpdateCustomer,我可以传递一个客户对象并让它更新任何东西并在任何地方使用它。

好,不好?哪条路走。

2 个答案:

答案 0 :(得分:1)

您应该只更新所有字段,除非有理由不减少您的维护问题。

不更新所有字段的原因。这些都非常特定于环境,只有在您的情况下观察它们才有效。

  1. 您的绝大多数交易都是更新,由于不必要的数据通过网络传输,造成了沉重的负担。
  2. 商业或法律合规性要求您准确记录用户更改了每笔交易的确切数据(这些确实存在)。但是,根据环境,最好将其记录在数据库服务器上。
  3. 某些用户不应具有某些字段的更新权限。这是特定于体系结构的,与您公开函数的方式有关。如果某人必须拥有某些凭据来更新特定信息,那么通常情况下,您不希望每个事务都更新所有内容。这可以是动态的,并且可能导致传递字段字典以进行更新(或者无数其他选择)。我通常使用分层体系结构来使用具有不同访问权限的多个使用者的服务。
  4. 我错过了吗?
  5. 通常,答案只是传递整个对象。

答案 1 :(得分:0)

创建一个名为UpdateCustomer(客户客户)的方法,该方法可以接收完整的客户对象,并对所有字段进行全部更新。

保持简单。现在你可以把时间花在更大的问题上。