依赖注入

起源

 最近跟进EntLib 5.0,到了Unity,以前并没有特别关注,看完资料发现怎么做到是比较详细,但是为什么这么做并没有说明。

还是先导入术语:依赖注入(Dependency Injection),是这样一个过程:由于某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点。在程序运行过程中,客户类不直接实例化具体服务类实例,而是客户类的运行上下文环境或专门组件负责实例化服务类,然后将其注入到客户类中,保证客户类的正常运行。

好比上饭店吃饭。我即客户端,我依赖饭店提供的点菜服务,然后我才能吃饭。我必须点菜,不点肯定没得吃,这就是依赖。点菜服务有点套餐、点多个菜等。今天我点套餐,明天我点几样菜。

按照我点菜的逻辑,这就是一个既定类,我点什么都写下来。

从饭店给我提供服务的逻辑来说,这就是个选择题,我点什么,就上什么。这就是依赖之后的注入。注入我要的服务。

注入的方式有三种:Constructor Injection(构造器注入)、Setter Injection(设值注入)、Interface Injection (接口注入)。Unity对前两种都有实现,可以通过编程或配置文件实现。

posted @ 2012-07-25 14:39  Stopwatch  阅读(234)  评论(0)    收藏  举报