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

重庆企业型网站建设手机客户端app开发

重庆企业型网站建设,手机客户端app开发,网站建设杭州缘择低价,一起做网店官网app策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;定义了一系列算法#xff0c;并将每种算法封装到独立的类中#xff0c;使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化#xff0c;客户端通过与这些策略对象进…策略模式Strategy Pattern是一种行为型设计模式定义了一系列算法并将每种算法封装到独立的类中使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化客户端通过与这些策略对象进行交互来执行不同的行为。 在策略模式中核心思想是将算法的定义和使用分离使得不同的策略算法可以灵活地切换符合面向对象设计中的开闭原则即对扩展开放、对修改关闭。 策略模式的结构 策略接口Strategy Interface定义所有策略的共同行为这通常是一个抽象类或接口。具体策略类Concrete Strategy实现策略接口的具体算法。上下文类Context Class维护对某个策略对象的引用并提供对客户端的接口允许客户端调用策略算法。 适用场景 避免使用难以维护的多重条件选择语句当策略中有较为复杂的数据结构或者算法不需要暴露在客户端或者其他时。 在 Unity 中使用 策略模式 在 Unity 中使用策略模式的一个典型应用场景是为游戏角色定义不同的移动方式例如走路、跑步、跳跃等。在游戏开发中不同的角色可能有不同的移动方式。通过策略模式我们可以将这些不同的移动逻辑封装到独立的策略类中并动态切换角色的移动方式。 1、通过策略模式实现角色的移动 (1) 定义策略接口  首先定义一个策略接口 IMoveStrategy它规定所有移动策略都必须实现一个 Move() 方法。 public interface IMoveStrategy {void Move(Transform characterTransform); } (2) 定义具体策略类  创建几个具体的移动策略类 WalkStrategy、RunStrategy 和 JumpStrategy分别实现不同的移动行为。 using UnityEngine;// 走路策略 public class WalkStrategy : IMoveStrategy {public void Move(Transform characterTransform){characterTransform.Translate(Vector3.forward * 2f * Time.deltaTime);Debug.Log(Character is walking.);} }// 跑步策略 public class RunStrategy : IMoveStrategy {public void Move(Transform characterTransform){characterTransform.Translate(Vector3.forward * 5f * Time.deltaTime);Debug.Log(Character is running.);} }// 跳跃策略 public class JumpStrategy : IMoveStrategy {public void Move(Transform characterTransform){characterTransform.Translate(Vector3.up * 5f * Time.deltaTime);Debug.Log(Character is jumping.);} } (3) 定义上下文类 Character 类作为上下文类负责维护当前的移动策略并提供方法来设置不同的移动策略和执行移动操作。 using UnityEngine;public class Character : MonoBehaviour {private IMoveStrategy moveStrategy;// 设置移动策略public void SetMoveStrategy(IMoveStrategy strategy){moveStrategy strategy;}// 执行移动public void PerformMove(){if (moveStrategy ! null){moveStrategy.Move(transform);}else{Debug.LogWarning(Move strategy not set!);}} } (4) 客户端代码 在 GameController 中我们实例化角色并动态设置和切换移动策略。 using UnityEngine;public class GameController : MonoBehaviour {private Character character;void Start(){// 创建角色character gameObject.AddComponentCharacter();// 初始化为走路策略character.SetMoveStrategy(new WalkStrategy());}void Update(){// 执行移动character.PerformMove();// 根据输入切换策略if (Input.GetKeyDown(KeyCode.W)){character.SetMoveStrategy(new WalkStrategy());}else if (Input.GetKeyDown(KeyCode.R)){character.SetMoveStrategy(new RunStrategy());}else if (Input.GetKeyDown(KeyCode.Space)){character.SetMoveStrategy(new JumpStrategy());}} } 示例解释 WalkStrategy角色以较慢的速度向前移动模拟走路的行为。RunStrategy角色以较快的速度向前移动模拟跑步的行为。JumpStrategy角色向上跳跃模拟跳跃的行为。 在 GameController 中使用键盘输入W 键、R 键和空格键来动态切换角色的移动策略。按下相应的键后角色将切换到走路、跑步或跳跃模式。 通过策略模式角色的移动方式可以灵活切换而不需要修改任何核心代码。 策略模式 在 Unity 中的优势是可以动态切换角色行为如移动、攻击等。通过将不同的移动方式封装到独立的类中我们可以更方便地扩展系统并根据游戏需求随时切换策略。 2、通过策略模式实现修改图片的颜色 1定义策略接口 首先定义一个抽象类或接口ChangeColor并且声明一个image参数和ExChangeColor的虚方法 using UnityEngine.UI; public abstract class ChangeColor {public Image img;public virtual void ExChangeColor() { } }2定义具体策略类 然后创建几个具体的策略类ChangeColor和ChangeBlue分别用来改变不同颜色 //修改图片颜色为红色 using UnityEngine; public class ChangeRed : ChangeColor {public override void ExChangeColor(){img.color Color.red;} }------------------- //修改图片颜色为蓝色 using UnityEngine; public class ChangeBlue : ChangeColor {public override void ExChangeColor(){img.color Color.blue;} }3定义上下文类 维护对strategy 对象的引用并提供方法来设置不同的操作 using UnityEngine.UI; public class StategyContext {ChangeColor strategy;public StategyContext(ChangeColor strategy,Image img){this.strategy strategy;this.strategy.img img;}public void StategyContextInterface(){strategy.ExChangeColor();} }4客户端代码 在 StategyManager 中我们实例化角色并动态设置和切换移动策略。 using UnityEngine.UI; public class StategyManager : MonoBehaviour {[SerializeField] private Image img;StategyContext stategyContext;void Update(){if (Input.GetKeyDown(KeyCode.R)){stategyContext new StategyContext(new ChangeRed(), img);stategyContext.StategyContextInterface();}if (Input.GetKeyDown(KeyCode.B)){stategyContext new StategyContext(new ChangeBlue(), img);stategyContext.StategyContextInterface();}} }今天是2024年12月4日 重复一段毒鸡汤来勉励我和你 你的对手在看书 你的仇人在磨刀 你的闺蜜在减肥 隔壁的老王在练腰 而你在干嘛
http://www.w-s-a.com/news/384475/

相关文章:

  • h5游戏平台入口优化是什么梗
  • 建设银行对公网站打不开网络推广活动方案主题和思路
  • 茶叶网站开发目的和意义网页设计需要考什么证
  • 高端企业网站建设公司怎么做实用性建设网站都需要哪些
  • 网站备案必须要幕布吗易企秀网站怎么做轮播图
  • 南昌网站排名优化四线城市网站建设方向及营利点
  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网