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

建设部项目经理认证网站民制作网站哪家便宜

建设部项目经理认证网站,民制作网站哪家便宜,listify wordpress,网站引流.状态模式 介绍 设计模式定义案例问题堆积在哪里解决办法状态模式一个对象 状态可以发生改变 不同的状态又有不同的行为逻辑游戏角色 加载不同的技能 每个技能有不同的#xff1a;攻击逻辑 攻击范围 动作等等1 状态很多 2 每个状态有自己的属性和逻辑每种状态单独写一个类 角色…状态模式 介绍 设计模式定义案例问题堆积在哪里解决办法状态模式一个对象 状态可以发生改变 不同的状态又有不同的行为逻辑游戏角色 加载不同的技能 每个技能有不同的攻击逻辑 攻击范围 动作等等1 状态很多 2 每个状态有自己的属性和逻辑每种状态单独写一个类 角色需要那个状态就加载哪一个 类图 角色  stateBase 抽象状态 stateA 具体状态A stateB 具体状态B stateC 具体状态C FactoryState  状态工厂 代码 RoleContext using System.Collections; using System.Collections.Generic; using UnityEngine;public class RoleContext {string name;StateBase currentState null;public RoleContext(){name 独孤求败;}// 展示动作public void ShowAction(){if (null ! currentState){currentState.Action();}}// 切换状态public void ChangeActionState(StateBase newState){currentState newState;} }StateBase public abstract class StateBase {public abstract void Action(); }StateA  using System.Collections; using System.Collections.Generic; using UnityEngine;public class StateA : StateBase {string name 普攻;public override void Action(){Debug.Log(释放- name);} }StateB  using System.Collections; using System.Collections.Generic; using UnityEngine;public class StateB : StateBase {string name 次元斩;public override void Action(){Debug.Log(释放- name);} }StateC using System.Collections; using System.Collections.Generic; using UnityEngine;public class StateC:StateBase {string name 升龙击;public override void Action(){Debug.Log(释放- name);} }FactoryState using System.Collections; using System.Collections.Generic; using UnityEngine;public class FactoryState {// 单例static FactoryState self null;FactoryState() { }public static FactoryState Instance(){if (null self)self new FactoryState();return self;}Dictionarystring, StateBase dic new Dictionarystring, StateBase();// 获取实例public StateBase GetStateIns(string className){StateBase ins null;switch (className){case StateA:{if (false dic.ContainsKey(className))ins new StateA();elseins dic[className];}break;case StateB:{if (false dic.ContainsKey(className))ins new StateB();elseins dic[className];}break;case StateC:{if (false dic.ContainsKey(className))ins new StateC();elseins dic[className];}break;default:Debug.Log(未发现该类);break;}return ins;} }测试代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class TestZT : MonoBehaviour {void Start(){RoleContext role new RoleContext();// 切换技能Arole.ChangeActionState(FactoryState.Instance().GetStateIns(StateA));role.ShowAction();// 切换技能Brole.ChangeActionState(FactoryState.Instance().GetStateIns(StateB));role.ShowAction();// 切换技能Crole.ChangeActionState(FactoryState.Instance().GetStateIns(StateC));role.ShowAction();}}结果 总结 状态模式 1 是一个非常好用的 解耦合的手段 角色不同的状态封装不同的动作属性限制 2 非常符合对修改封闭对扩展开发的原则。 3 让状态的职责更加的单一 4 也符合了依赖倒置 依赖了抽象 5 符合了迪米特原则角色对状态类内部的具体实现不知道
http://www.w-s-a.com/news/632305/

相关文章:

  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些