2008年4月18日
摘要: 在介绍 Constructor Injection、Property Injection 和 Method Call Injection 时,都有特别提到不要出现循环引用(Circular References),因为出现这种问题后很难去检测到,最好的解决方法是写代码时候尽量避免出现这种情况。 下面看看循环引用的几个场景,在使用依赖注入框架时应该尽量避免出现这样的情况: 阅读全文
posted @ 2008-04-18 00:11 Inrie 阅读(1576) 评论(3) 推荐(0) 编辑
摘要: 通过Unity容器的BuildUp方法可以让已存在的对象实例也可以支持依赖注入。 使用Unity的话组件或类库中可能会充斥一些类似[Dependency]这样的东西,这些只是为了用来为Unity服务,而没有任何其他用途。相对于Castle IOC容器和Spring.Net来说,Unity的侵入性更强。 阅读全文
posted @ 2008-04-18 00:09 Inrie 阅读(2192) 评论(5) 推荐(0) 编辑
摘要: 什么情况下使用Method Call Injection 当实例化父对象时也能自动实例化所依赖的对象 通过简单的方式使得很容易做到在代码中查看每个类所依赖的项 父对象有很多相互之间有关联关系的构造器,导致在调试和维护时很不方便 父对象包含有很多参数构造器,特别是参数类型相似的只能通过参数的位置来辨别的 隐藏依赖的对象,不作为属性暴露出去 通过修改依赖对象的代码来控制哪些对象可以被注入,而不用改动父对象或应用程序 阅读全文
posted @ 2008-04-18 00:08 Inrie 阅读(1955) 评论(6) 推荐(0) 编辑
摘要: 什么情况下使用Property (Setter) Injection 当实例化父对象时也能自动实例化所依赖的对象 通过简单的方式使得很容易做到在代码中查看每个类所依赖的项 父对象有很多相互之间有关联关系的构造器,导致在调试和维护时很不方便。 父对象包含有很多参数构造器,特别是参数类型相似的只能通过参数的位置来辨别的 让用户(将调用这些代码的程序)更方便的看到有哪些对象可以用,这在Constructor Injection里是没办法实现的。 通过修改依赖对象的代码来控制哪些对象可以被注入,而不用改动父对象或应用程序 阅读全文
posted @ 2008-04-18 00:06 Inrie 阅读(2397) 评论(10) 推荐(0) 编辑
摘要: 什么情况下使用Constructor Injection 当实例化父对象时也能自动实例化所依赖的对象 通过简单的方式使得很容易做到在代码中查看每个类所依赖的项 父对象的构造器不需要很多相互间有关联关系的构造器 父对象的构造器不需要很多参数 通过不使用属性和方法暴露给调用程序,达到封装字段值以不能被看到的目的 通过修改依赖对象的代码来控制哪些对象可以被注入,而不用改动父对象或应用程序 阅读全文
posted @ 2008-04-18 00:05 Inrie 阅读(3337) 评论(6) 推荐(0) 编辑
摘要: Unity Application Block (Unity) 是微软 Patterns & Practices 团队开发的一个轻量级、可扩展的依赖注入容器,有助于构建松散耦合的系统。它支持构造子注入(Constructor Injection), 属性注入(Property Injection)和方法调用注入(Method Call Injection)。Patterns & Practices 团队于前几天(4月4日)发布了Unity的第一个正式版本(Unity 1.0)。 阅读全文
posted @ 2008-04-18 00:01 Inrie 阅读(3569) 评论(14) 推荐(2) 编辑