在典型的3层系统中,GUI-> DOMAIN-> DAL,IRepository属于哪里?它属于DOMAIN还是DAL.我不太了解正交性和服务层,知道区别是什么.(编辑)请允许我澄清一下.哪个(在什么层?)应该定义IRepository接口?还应该在哪个层实施IRepository?请允许我进一步澄清......我正在尝试将Fowlers"Seperated Interface"与IRepository融合在一起.我担心的是执行依赖规则.如果在DOMAIN中定义了IRepository,那么DAL包将依赖于DOMAIN.否则,如果反之亦然,则在DAL中定义IRepository,然后DOMAIN将依赖于DAL.同样,IRepository属于哪里?这是我的第3次编辑.
通常,IRepository(或者像IUserRepository这样的特定接口)属于DOMAIN层.存储库特定于DOMAIN层,旨在使用聚合根.因此位置.但是IRepository的实现当然属于DAL.然后,您可以使用IoC将所有内容粘合在一起.