Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 贫血区域模型与活动记录的区别_Design Patterns_Activerecord_Anemic Domain Model - Fatal编程技术网

Design patterns 贫血区域模型与活动记录的区别

Design patterns 贫血区域模型与活动记录的区别,design-patterns,activerecord,anemic-domain-model,Design Patterns,Activerecord,Anemic Domain Model,根据答案,我发现贫血领域模型背后的相同想法也存在于活动记录中! 在活动记录模式中,数据库字段与域属性相同(如果我错了,请纠正我),因此根据我前面提到的答案,我们在贫血模型中有相同的字段(很容易从数据库表自动生成),那么这两种方法之间的区别是什么? 感谢以下是Martin Fowler的企业应用程序架构模式中活动记录的官方一句话定义: “在数据库表或视图中封装行、封装数据库访问,并在该数据上添加域逻辑的对象”(emphasis mine) 请注意我粗体显示的定义的最后一部分。由于Active Re

根据答案,我发现贫血领域模型背后的相同想法也存在于活动记录中! 在活动记录模式中,数据库字段与域属性相同(如果我错了,请纠正我),因此根据我前面提到的答案,我们在贫血模型中有相同的字段(很容易从数据库表自动生成),那么这两种方法之间的区别是什么?
感谢

以下是Martin Fowler的企业应用程序架构模式中活动记录的官方一句话定义:

“在数据库表或视图中封装行、封装数据库访问,并在该数据上添加域逻辑的对象”(emphasis mine)


请注意我粗体显示的定义的最后一部分。由于Active Record应该向类中添加额外的域逻辑,因此它不是贫血。

您定义的贫血域模型的缺陷是不正确的。自动方面是次要的。ADM的问题是它没有业务逻辑,即没有方法,这是活动记录类可能犯的错误,但它不是模式定义的隐式部分。活动记录可以具有处理数据库存储和检索之外的数据的方法。