最近刚刚在学习设计模式。看到了Repository模式和IOC容器都能够解耦。请问一下区别是什么??就是Repository模式和IOC能够同时用??如果能同事用,Repository模式和IOC容器分别用在分层架构的哪些层次??

解决方案 »

  1.   

    个人意见,如果是DDD里的Repository,那它与IoC这个依赖注入的基础概念不搭边吧。
      

  2.   

    这两个概念的使用范畴不一样,没有放在一起讨论的意义。不过你可以用IOC的框架或者思想来构建你的Repository。
      

  3.   


    比如你有一个画图程序,你想设计一个图元的Repository。这时候每个图元又具有一定的功能,依赖于某些特定的功能类。这时候你就可以利用IOC来为所有的图元注入相应的功能类的依赖,再利用Repository为外部调用者提供图元的实例。这时候,对于外部的调用者来说,他们看到的只是你的Reository,他们没有任何IOC的概念。但是在你Repository的内部,你使用了IOC的方法来组合图元与功能
      

  4.   

    IoC可以和Repository组合使用,IoC为Repository模式提供不同实现的切换