Setter注入实例代码依赖注入学习示例

Setter注入实例代码 Code:IServiceClass

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SetterInjection
{
   internal interface IServiceClass
   {
       String ServiceInfo();
   }
}

CodeServiceClassA

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SetterInjection
{
   internal class ServiceClassA : IServiceClass
   {
       public String ServiceInfo()
       {
           return "我是ServceClassA";
       }
   }
}

CodeServiceClassB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SetterInjection
{
   internal class ServiceClassB : IServiceClass
   {
       public String ServiceInfo()
       {
           return "我是ServceClassB";
       }
   }
}

CodeClientClass

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SetterInjection
{
   internal class ClientClass
   {
       private IServiceClass _serviceImpl;
       public void Set_ServiceImpl(IServiceClass serviceImpl)
       {
           this._serviceImpl = serviceImpl;
       }
       public void ShowInfo()
       {
           Console.WriteLine(_serviceImpl.ServiceInfo());
       }
   }
}

CodeContext

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SetterInjection
{
   class Program
   {
       static void Main(string[] args)
       {
           IServiceClass serviceA = new ServiceClassA();
           IServiceClass serviceB = new ServiceClassB();
           ClientClass client = new ClientClass();
           client.Set_ServiceImpl(serviceA);
           client.ShowInfo();
           client.Set_ServiceImpl(serviceB);
           client.ShowInfo();
       }
   }
}
ppt 文件大小:331.5KB