单例模式
来源:互联网 发布:centos安装tomcat 编辑:程序博客网 时间:2024/06/05 02:03
单例模式
这是工作中经常用到的模式,记下了以便复用。
以前用过的代码,新的就不写了。变懒了。
using UnityEngine;using System.Collections;using System.Collections.Generic;using LitJson;public class UIPanelManager { //单例模式 private static UIPanelManager _instance = null; //用于存放panel的路径 private Dictionary<BasePanel.PanelType, string> panelPaths; //用于存放Prefab的实例 public Dictionary<BasePanel.PanelType, GameObject> panelGameObjects; //获取实例 public static UIPanelManager GetInstance() { if (_instance == null) { _instance = new UIPanelManager(); } return _instance; } //获取路径 public string GetPanelPath(BasePanel.PanelType panelType) { if (panelPaths == null) { panelPaths = new Dictionary<BasePanel.PanelType, string>(); List<PanelMessage> panelMessageList = new List<PanelMessage>(); TextAsset ta = Resources.Load("PathJson") as TextAsset; string panelJsonString = ta.text; panelMessageList = JsonMapper.ToObject<List<PanelMessage>>(panelJsonString); foreach (var item in panelMessageList) { panelPaths.Add((BasePanel.PanelType)System.Enum.Parse(typeof(BasePanel.PanelType), item.panelType), item.panelPath); } } string path; panelPaths.TryGetValue(panelType, out path); return path; } //获取prefab实例 public GameObject GetPanelObj(BasePanel.PanelType panelType) { if (panelGameObjects == null) { panelGameObjects = new Dictionary<BasePanel.PanelType, GameObject>(); } GameObject obj; panelGameObjects.TryGetValue(panelType, out obj); if (obj == null) { obj = GameObject.Instantiate(Resources.Load<GameObject>(GetPanelPath(panelType))); panelGameObjects.Add(panelType, obj); } obj.SetActive(true); return obj; } // public void Clear() { if(panelGameObjects!=null) panelGameObjects.Clear(); } public void Remove(BasePanel.PanelType k) { panelGameObjects.Remove(k); }}
private static UIPanelManager _instance = null;
public static UIPanelManager GetInstance() {
if (_instance == null) {
_instance = new UIPanelManager();
}
return _instance;
}
比较关键的2句,其他都是自己根据情况来。
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- 信号量(semaphore)入门
- 函数重载、覆盖、隐藏
- 问题汇锦
- Android SharedPreferences详解
- Java泛型详解,通俗易懂只需5分钟
- 单例模式
- Java水仙花数的三种实现
- 机器学习sklearn多元线性回归2
- Spring boot 项目发布war 本地调试jar 方法
- iOS 搜索过滤
- Java实例—数组的排序和搜索
- opencv中值滤波-双边滤波
- libevent源码深度剖析十
- PHP会话控制Session与Cookie