using System; using SHJX.Service.ServerClient; using System.Collections.Concurrent; using SHJX.Service.Control.PortOperate.Interface; namespace SHJX.Service.Control.PortOperate.Content { public class PumpContent { private readonly ConcurrentDictionary _pumpContents; public PumpContent(OptClient client) { _pumpContents = new ConcurrentDictionary(); _pumpContents.TryAdd("PotassiumDichromate_Low", new PotassiumDichromateLowOperatep(client)); _pumpContents.TryAdd("PotassiumDichromate_High", new PotassiumDichromateHighOperate(client)); _pumpContents.TryAdd("FAS_Low", new FasLowOperate(client)); _pumpContents.TryAdd("FAS_High", new FasHighOperate(client)); _pumpContents.TryAdd("SilverSulfate", new SilverSulfateOperate(client)); } public PortOperateImp Factory(string pumpName) { if (_pumpContents.TryGetValue(pumpName, out var pumpOperate)) { return pumpOperate; } throw new ArgumentNullException(pumpName); } } }