编辑
2025-09-24
C#
00

目录

摘要
正文

摘要

服务定位器的使用使得应用程序的逻辑更加清晰和易于维护。服务定位器定义了服务之间的依赖关系,使得每个服务都可以独立地创建和管理。这样,如果需要更改一个服务的实现,只需要更改该服务的实现类,而不会影响其他服务。

正文

image.png

服务器定位器模式不会描述如何实例化服务,它描述一个注册服务和定位服务的方法。通常情况下,服务定位器模式结合工厂模式(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)); } }

image.png

一个接口被多个类继承怎么做?

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!