当前位置: 首页 > news >正文

dede地方门户网站模板怎么做属于自己的域名网站

dede地方门户网站模板,怎么做属于自己的域名网站,w3school网页制作,主播网站开发EventSystem 事件系统 事件系统在开发中必不可少事件系统使用观察者模式可以极大程度降低程序的耦合#xff0c;之前的文章也讲过事件系统但是不够高效简洁#xff0c;如何轻便高效优雅的实现一个事件呢#xff1f;依然基于之前的AssemblyManager 程序集管理器和SingletonS…EventSystem 事件系统 事件系统在开发中必不可少事件系统使用观察者模式可以极大程度降低程序的耦合之前的文章也讲过事件系统但是不够高效简洁如何轻便高效优雅的实现一个事件呢依然基于之前的AssemblyManager 程序集管理器和SingletonSystem 单例管理系统进行开发主要原理也是根据反射去获取事件的接口使用反射进行实例化处理类而非人工手动订阅事件。 1.IEvent public interface IEvent {Type GetEventType();void Invoke(object self); }2.EventHandler public abstract class EventHandlerT : IEvent where T : struct {private readonly Type _selfType typeof(T);public Type GetEventType(){return _selfType;}public abstract void Handler(T eventStruct);public void Invoke(object self){try{Handler((T)self);}catch (Exception ex){Debug.LogError(${_selfType.Name} Error : {ex.Message});return;}} }3.EventInfo public sealed class EventInfo {public readonly Type Type;public readonly IEvent Event;public EventInfo(Type type, IEvent event){Type type;Event event;} }4.EventSystem public class EventSystem : SingletonEventSystem {private readonly OneToManyListType, IEvent _events new();private readonly OneToManyListint, EventInfo _assemblyEvents new();protected override void Load(int assemblyName){foreach (Type type in AssemblyManager.ForEach(assemblyName, typeof(IEvent))){IEvent event (IEvent)Activator.CreateInstance(type);if (event ! null){Type thisType event.GetEventType();_events.Add(thisType, event);_assemblyEvents.Add(assemblyName, new EventInfo(thisType, event));}}}protected override void UnLoad(int assemblyName){if(_assemblyEvents.TryGetValue(assemblyName,out ListEventInfo events)){foreach (EventInfo info in events){_events.RemoveValue(info.Type, info.Event);}_assemblyEvents.RemoveByKey(assemblyName);}}public void PublishTEventData(TEventData eventData) where TEventData : struct{if (!_events.TryGetValue(eventData.GetType(), out ListIEvent list))return;foreach (IEvent event in list){try{event?.Invoke(eventData);}catch (Exception ex){Debug.LogError(ex.Message);return;}}}public override void Dispose(){_events.Clear();_assemblyEvents.Clear();base.Dispose();} }这里的每个事件传递的参数可以使用引用池进行管理避免重复创建相同的对象消耗性能。 5.测试 public class Test : MonoBehaviour {void Start(){SingletonSystem.Initialize();AssemblyManager.Initialize();}private void Update(){SingletonSystem.Update();if (Input.GetKeyDown(KeyCode.P)){EventSystem.Instance.PublishAgeEvent(new AgeEvent() { Age 18 });}} }public struct AgeEvent {public int Age; }public class AgeChangeHandler : EventHandlerAgeEvent {public override void Handler(AgeEvent eventStruct){Debug.Log(eventStruct.Age);} }
http://www.pierceye.com/news/231176/

相关文章:

  • 推销网站建设今天重大新闻文字
  • 网站上线过程网站开发系统需求说明书
  • it外包行业江门seo网络推广
  • 深圳石岩建网站判断网站模板版本
  • 梅州市住房和城乡建设局网站东营网站
  • 免费手机端网站模板下载工具windows怎么做网站
  • 新乡网站自然优化本地电脑如何做网站服务器
  • 网站备案是域名备案还是服务器备案辽宁天一建设有限责任公司网站
  • 做网站的软件是什么阿里云官网入口
  • 徐州网站建设服务网络营销方式的优点
  • 建设电影网站点击播放是乱页的建站网站多少钱
  • 网站上传服务器教程交做网贷的网站
  • wordpress网站无法打开wordpress怎么设置跳站外链接
  • 宠物美容网站建设的目的延安网站建设
  • 开发网站如何赚钱网站流量攻击软件
  • 达内网站开发视频教程水利建设专项收入在什么网站上申报
  • php网站后台密码忘记了莆田网站建设推广
  • wordpress typo3seo排名优化哪家好
  • 做pc端网站什么开头参考消息网国内新闻
  • 济南网站开发xywlcn宁波公司注册代理公司
  • 网站怎么找的中国外贸出口网站
  • 个人备案网站可以做商城吗做视频点播网站的要求
  • 那个网站点击率高域名解析大全
  • 做优化排名会不会影响网站速度广州网匠营销型网站建设公司
  • 南京林业大学实验与建设网站如何查询网站备案时间查询
  • 做食品网站有哪些凡科建站做的网站收录慢吗
  • 做平面还有什么素材网站集团网站建设
  • seo网站营销推广公司不错的免费网站建设
  • 怎么做自助交易网站平面设计师工资一般多少钱一个月
  • 网站建设如何运营seoul是什么意思