享元模式
1.享元工厂
/*---------------------------------------------------------------- * 作 者 :姜 彦 * 项目名称 :Utility.Tool.Controller.Controller * 类 名 称 :TSerialPortModelFlyweightFactory * 命名空间 :Utility.Tool.Controller.Controller * CLR 版本 :4.0.30319.42000 * 创建时间 :2018/9/7 17:56:12 * 当前版本 :1.0.0.1 * My Email :jiangyan2008.521@gmail.com * jiangyan2008.521@qq.com * 描述说明: * * 修改历史: * ******************************************************************* * Copyright @ JiangYan 2018. All rights reserved. ******************************************************************* ------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using Utility.Tool.Model.Model; namespace Utility.Tool.Controller.Controller { /// <summary> /// TSerialPortModelFlyweightFactory享元 /// </summary> public class TSerialPortModelFlyweightFactory { #region Flyweiht private static Dictionary<int, TSerialPortController> FlyweightFactoryDictionary = new Dictionary<int, TSerialPortController>(); private static readonly object FlyweightFactory_Lock = new object(); public static TSerialPortController Initalize(TSerialPortModel portModel) { if (!FlyweightFactoryDictionary.ContainsKey(portModel.COMID)) { lock (FlyweightFactory_Lock) { if (!FlyweightFactoryDictionary.ContainsKey(portModel.COMID)) { TSerialPortController controller = new TSerialPortController(portModel); FlyweightFactoryDictionary.Add(portModel.COMID, controller); } } } return FlyweightFactoryDictionary[portModel.COMID]; } #endregion } }
浙公网安备 33010602011771号