有些项目有一些倒置控制元件.
这些组件工作在不同的概念领域-业务,图形用户界面,全球化,存储.-。
哪一个是你的解决方案?
我会欣赏正反两面的。
谢谢你的努力,提前!
发布于 2011-05-02 11:24:46
为了保持一致性,我建议您对所有概念区域使用容器的相同实现(AutoFac、Unity、Spring )。
如果每个概念区域都保留一个容器并不困难,那么就这样做。对于相同的依赖项(例如IEmailService ),对于不同的概念区域(RemoteEmailService、LocalEmailService)需要不同的实现时,您将避免出现问题。一个缺点是,如果您有共享组件,您需要跟踪它们并在每个区域的每个容器中注册它们。
如果IOC实现支持父-子容器(AutoFac),则可以在父容器中具有共享组件,并且在每个子容器中具有特定的组件。
如果IOC实现使得难以为每个区域使用单独的容器,则不要对其进行斗争,要么更改它,要么使用一个全局容器,但是在注册组件时要小心。
无论如何,确保您的代码是IOC实现不可知论的。这样,您可以从“一个容器为一切”开始,然后,如果需要的话,移动到“每个区域的容器”。
https://stackoverflow.com/questions/5855663
复制相似问题