服务定位器的使用使得应用程序的逻辑更加清晰和易于维护。服务定位器定义了服务之间的依赖关系,使得每个服务都可以独立地创建和管理。这样,如果需要更改一个服务的实现,只需要更改该服务的实现类,而不会影响其他服务。
服务器定位器模式不会描述如何实例化服务,它描述一个注册服务和定位服务的方法。通常情况下,服务定位器模式结合工厂模式(Factory pattern)和/或依赖注入模式(Dependency Injection pattern)。这种组合使得服务定位器创建服务的实例。
一个例子
C#internal class Program
{
static void Main(string[] args)
{
ServiceCollection services = new ServiceCollection();
services.AddScoped<IEquipment,Plc>();
using (ServiceProvider sp = services.BuildServiceProvider())
{
IEquipment plc = sp.GetService<IEquipment>();
plc.Name = "S71200";
plc.Description = "SIEMENS";
plc.Read("DB0.0");
};
}
}
interface IEquipment
{
public string Name { get; set; }
public string Description { get; set; }
public void Read(string address);
}
class Plc : IEquipment
{
public string Name { get; set; }
public string Description { get; set; }
public void Read(string address)
{
Console.WriteLine(this.Name + " " + address + " " + new Random().Next(1, 200));
}
}
class Converter : IEquipment
{
public string Name { get; set; }
public string Description { get; set; }
public void Read(string address)
{
Console.WriteLine("Converter"+" "+this.Name + " " + address + " " + new Random().Next(1, 200));
}
}
一个接口被多个类继承怎么做?
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!