c# 依赖注入之---setterInjection(转)

图3.1 Setter注入示意

定义一个接口:

namespace SetterInjection
{
    internal interface IServiceClass
    {
        string ServiceInfo();
    }
}

定义一个要实现该接口的类A:

internal class ServiceClassA : IServiceClass
    {
        public string ServiceInfo()
        {
            return "我是ServceClassA";
        }
    }

定义一个要实现该接口的类B:

 internal class ServiceClassB : IServiceClass
    {
        public string ServiceInfo()
        {
            return "我是ServceClassB";
        }
    }

定义一个主体类---注入点:

  internal class ClientClass
    {
        private IServiceClass _serviceImpl;
        public void Set_ServiceImpl(IServiceClass serviceImpl)
        {
            this._serviceImpl = serviceImpl;
        }

        public void ShowInfo()
        {
            Console.WriteLine(_serviceImpl.ServiceInfo());
        }
    }

Main:

   class Program
    {
        static void Main(string[] args)
        {
            //setterInjection
            IServiceClass serviceA = new ServiceClassA();
            IServiceClass serviceB = new ServiceClassB();
            ClientClass client = new ClientClass();

            client.Set_ServiceImpl(serviceA);
            client.ShowInfo();
            client.Set_ServiceImpl(serviceB);
            client.ShowInfo();
            Console.ReadLine();
        }
    }

结果:

时间: 2024-10-07 20:48:41

c# 依赖注入之---setterInjection(转)的相关文章

讲解依赖注入的好文-目前唯一

以前对于依赖注入概念很模糊,甚至已经用到了但是我却不知道它就是依赖注入.直到看到这篇文章. 如果看了之后还是很模糊,可以进入页终链接,找到博主上一篇文章的有趣小例子. 2.2 正式定义依赖注入 下面,用稍微正式一点的语言,定义依赖注入产生的背景缘由和依赖注入的含义.在读的过程中,读者可以结合上面的例子进行理解. 依赖注入产生的背景: 随着面向对象分析与设计的发展,一个良好的设计,核心原则之一就是将变化隔离,使得变化部分发生变化时,不变部分不受影响(这也是OCP的目的).为了做到这一点,要利用面向

依赖注入那些事儿

from:http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Setter注入 3.1.2 Construtor注入 3.1.3 依赖获取 3.2 反射与依赖注入 3.3 多

C# 依赖注入

http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 这篇文章真的非常非常好···绝对值得收藏学习. 目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Setter注入 3.1.2 Construtor注入 3.1.3 依赖获

接触依赖注入

依赖注入(IOC) 以前做小项目的时候用到过,但不知道是什么原理,糊里糊涂的就用了. 今天特意来查一下原因的,找了很多,大部分太深奥不适合我这种初入新手,偶然看到了这篇 http://www.cnblogs.com/yriyr/archive/2010/01/29/1659143.html 作者好像也是转载的,推荐可以去原作看看. 这里边的代码样例通俗易懂,适合入门的人看 2017-06-07 更新 构造注入 另外一种依赖注入方式,是通过客户类的构造函数,向客户类注入服务类实例. 构造注入(Co

【转】依赖注入那些事儿

[转]依赖注入那些事儿 目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Setter注入 3.1.2 Construtor注入 3.1.3 依赖获取 3.2 反射与依赖注入 3.3 多态的活性与依赖注入 3.3.1 多态性的活性 3.3.2 不同活性多态性依赖注入的选择 4 IoC Contai

C#中的依赖注入那些事儿

目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依赖注入那些事儿 3.1 依赖注入的类别 3.1.1 Setter注入 3.1.2 Construtor注入 3.1.3 依赖获取 3.2 反射与依赖注入 3.3 多态的活性与依赖注入 3.3.1 多态性的活性 3.3.2 不同活性多态性依赖注入的选择 4 IoC Container 4.1 IoC

iOS控制反转(IoC)与依赖注入(DI)的实现

背景 最近接触了一段时间的SpringMVC,对其控制反转(IoC)和依赖注入(DI)印象深刻,此后便一直在思考如何使用OC语言较好的实现这两个功能.Java语言自带的注解特性为IoC和DI带来了极大的方便,要在OC上较好的实现这两个功能,需要一些小小的技巧. 控制反转和依赖注入 控制反转 简单来说,将一个类对象的创建由手动new方式改为从IOC容器内获取,就是一种控制反转,例如我们现在要创建一个ClassA类,则常规方法为 ClassA *a = [ClassA new]; 如果使用控制反转,

详解 Spring 3.0 基于 Annotation 的依赖注入实现(转)

使用 @Repository.@Service.@Controller 和 @Component 将类标识为 Bean Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发.@Repository 注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean.具体只需将该注解标注在 DAO 类上即可.同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用 Bean

工厂模式、控制反转及依赖注入

在介绍工厂模式与控制反转(Inversion of Control)及依赖注入(Dependency Injection)之前,先介绍下类的调用方法.目前调用方法总共有3种:1.自己创建:2.工厂模式:3.外部注入,其中外部注入即为控制反转/依赖注入模式(IoC/DI).我们可以用3个形象的东西来分别表示它们,就是new.get.set.顾名思义,new表示自己创建,get表示主动去取(即工厂),set表示是被别人送进来的(即注入),其中get和set分别表示了主动去取和等待送来两种截然相反的特