zoukankan      html  css  js  c++  java
  • 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();
            }
        }

    结果:

  • 相关阅读:
    事务 ~ 锁
    JDBC
    C# ~ 由 IDisposable 到 GC
    C# ~ 泛型委托
    函数式编程
    反射
    测试初识
    C# ~ 从 委托事件 到 观察者模式
    C# ~ 从 IEnumerable / IEnumerator 到 IEnumerable<T> / IEnumerator<T> 到 yield
    Java初识
  • 原文地址:https://www.cnblogs.com/25miao/p/7183463.html
Copyright © 2011-2022 走看看