享元模式

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

    }
}

 

posted @ 2018-09-30 19:06  <--青青子衿-->  阅读(106)  评论(0编辑  收藏  举报
// /**/ // 在页脚Html代码 引入 // function btn_donateClick() { var DivPopup = document.getElementById('Div_popup'); var DivMasklayer = document.getElementById('div_masklayer'); DivMasklayer.style.display = 'block'; DivPopup.style.display = 'block'; var h = Div_popup.clientHeight; with (Div_popup.style) { marginTop = -h / 2 + 'px'; } } function MasklayerClick() { var masklayer = document.getElementById('div_masklayer'); var divImg = document.getElementById("Div_popup"); masklayer.style.display = "none"; divImg.style.display = "none"; } setTimeout( function () { document.getElementById('div_masklayer').onclick = MasklayerClick; document.getElementById('btn_donate').onclick = btn_donateClick; var a_gzw = document.getElementById("guanzhuwo"); a_gzw.href = "javascript:void(0);"; $("#guanzhuwo").attr("onclick","follow('33513f9f-ba13-e011-ac81-842b2b196315');"); }, 900);