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 如何将Data Gateway与Data Mapper结合使用?_Design Patterns_Domain Driven Design_Datamapper_Gateway - Fatal编程技术网

Design patterns 如何将Data Gateway与Data Mapper结合使用?

Design patterns 如何将Data Gateway与Data Mapper结合使用?,design-patterns,domain-driven-design,datamapper,gateway,Design Patterns,Domain Driven Design,Datamapper,Gateway,根据Martin Fowler的说法,表/行数据网关与数据映射器模式并不相互排斥。他是这样说的: 这些模式并不完全相互排斥。。。即使你是 但是,使用数据映射器作为主要的持久性机制,您可以 可以使用数据网关包装正在创建的表或服务 作为外部接口处理 但是,我想不出数据网关与数据映射器一起使用的情况。你们中的任何人都可以更详细地解释这一点,并可能提供一个真实的示例,说明如何集成数据网关和映射器吗?谢谢 它们并不是相互排斥的,因为您可以在单个项目中同时使用它们。具体地说,Fowler指出,如果您有某些表

根据Martin Fowler的说法,表/行数据网关与数据映射器模式并不相互排斥。他是这样说的:

这些模式并不完全相互排斥。。。即使你是 但是,使用数据映射器作为主要的持久性机制,您可以 可以使用数据网关包装正在创建的表或服务 作为外部接口处理


但是,我想不出数据网关与数据映射器一起使用的情况。你们中的任何人都可以更详细地解释这一点,并可能提供一个真实的示例,说明如何集成数据网关和映射器吗?谢谢

它们并不是相互排斥的,因为您可以在单个项目中同时使用它们。具体地说,Fowler指出,如果您有某些表被视为外部接口,则可以用网关封装它们。表数据网关是一个简单、直接的接口。另一方面,数据映射器往往比表数据网关提供更好的隔离,因此更适合映射到域模型。这种方法的一个主要示例是ORM。

感谢您的澄清。所以它基本上是关于网关的简单表/域逻辑和数据映射器的复杂表/域逻辑?我想作者是说您可以使用网关作为中介来检索原始数据,然后数据映射器将这些原始数据“映射”到域模型中。通常在这种情况下,您的关系数据库访问库将有效地充当网关。在.NET世界中,这将是ADO.NET,Java中的JDBC。