如何为数据映射器模式从系统信息库模式有什么不同?(How is the Data Mapper pa

2019-08-03 04:36发布

我发现这似乎有相同的目标,两种模式 - 有什么区别?

http://martinfowler.com/eaaCatalog/dataMapper.html

http://martinfowler.com/eaaCatalog/repository.html

Answer 1:

[存储库是]在其中查询构造代码集中的映射层抽象的另一层。

DataMapper保证栅栏的DB方并不需要了解你的业务逻辑的细节和数据是如何通过你的业务对象保存在内存中,并在围栏的业务方并不需要知道数据如何被储存了。

为了说明这一点,考虑你的数据被保存在数据库作为一组行,说每排在你的店代表的项目。 在内存方面,你可能想保留这些信息不是列表StoreItem但作为两个列表,一个是这是在股票项目,另一个是外的库存物品。 这将是DataMapper的工作来处理一个列表,两个列表之间的过渡。

您可以通过在栅栏的业务方面增加其他对象和继承的名单复杂的事情。 该“DataMapper的”将不得不转换为并从代表到关系数据库。

在“库”提供了“SELECT * FROM表WHERE条件”功能,在业务方面。 你提供一个过滤器,它会返回该过滤器匹配对象的集合。

简言之:“的DataMapper”与单个对象的交易中,“库”与对象的集合优惠和扩展了由“DataMapper的”所提供的功能。



文章来源: How is the Data Mapper pattern different from the Repository Pattern?