请命名这个“模式”,以便我可以研究和了解更多信息

时间:2010-12-11 20:24:37

标签: dns repository design-patterns

最近有一段时间,我听到有人支持这样一个事实,即域模型不应允许通过后续Save调用的属性更新域对象。但是,所有更新都应该通过显式方法完成。我如何理解所说的内容的例子:

错误代码(这对我来说似乎很正常):

var x = _repository.GetCustomerByID(5);
x.Firstname = "Travis";
x.Lastname = "Laborde";
_respository.SaveCustomer(x);

我认为这个人投球的守则看起来像:

var x = _repository.GetCustomerByID(5);
x.UpdateCustomerName("Travis", "Laborde");
_repository.SaveCustomer(x);

我想了解更多信息 - 这个模式是否有名称,以便我可以在Bing上使用它?

1 个答案:

答案 0 :(得分:2)

我不知道这个模式有一个特定的名称,但根据你的描述,有一个基本的实际原因:

x.Firstname = "Travis"不会让x对象知道Firstname值已更改。这使得很难实现仅在更改的字段上使用SaveCustomer的{​​{1}}函数。

当然,在一种支持将成员赋值视为函数调用的语言中(例如,C#与其属性一起使用),这种模式变得不那么有趣了。