循环依赖

14-05-27 aa317016589

domain类库里的实体类(admin)里有个方法GetGroup(获取admin的组别)要通过Infrastructure类库里的GroupRepository从数据库获得数据。

但是Infrastructure已经引用domain所在的类库,这样就导致了循环依赖。

是不是我逻辑错了……

sinaID71717
2014-05-27 12:57

的确是你理解错了。抽象出IRepository接口,放在Domain里,然后通过依赖注入的方式将Infrastructure里具体的实现注入到具体的Domain Entity里,就是酱紫。

[该贴被sinaID71717于2014-05-27 12:57修改过]

oceannut
2014-05-27 13:04

对,抽象出IRepository接口,这样Domain依赖IRepository,Infrastructure也依赖IRepository,Domain和Infrastructure不再互相依赖,其实就是依赖的转移。

aa317016589
2014-05-27 15:19

在domain抽出接口IRepository,并建立反射工厂(EntiyFactory),利用EntiyFactory的CreateGroupRepository方法,在实体类(admin)GetGroup方法中反射出GroupRepository

如: IRepository ir = DataAccess.CreateGroupRepository();

那么我该如何使用GroupRepository里的私有方法呢?!

[该贴被aa317016589于2014-05-27 15:20修改过]