在典型的3层系统中,GUI-> DOMAIN-> DAL,IRepository属于哪里?它属于DOMAIN还是DAL。我不太了解正交性和服务层,知道区别是什么。(编辑)请允许我澄清一下。哪个(在什么层?)应该定义IRepository接口?还应该在哪个层实施IRepository?请允许我进一步澄清......我正在尝试将Fowlers“Seperated Interface”与IRepository融合在一起。我担心的是执行依赖规则。如果在DOMAIN中定义了IRepository,那么DAL包将依赖于DOMAIN。否则,如果反之亦然,则在DAL中定义IRepository,然后DOMAIN将依赖于DAL。同样,IRepository属于哪里?这是我的第3次编辑。
答案 0 :(得分:6)
通常,IRepository(或者像IUserRepository这样的特定接口)属于DOMAIN层。存储库特定于DOMAIN层,旨在使用聚合根。因此位置。 但是IRepository的实现当然属于DAL。然后,您可以使用IoC将所有内容粘合在一起。
答案 1 :(得分:1)
由于存储库处理检索和持久化数据,因此正确的层将是DAL。
答案 2 :(得分:1)
我不得不说它属于DAL(数据访问层)。存储库就是......用于获取和存储对象的存储库。我认为在这个级别拥有属于域层的任何业务逻辑被认为是不好的形式。很明显,它与GUI层无关。