当前位置: 首页 > news >正文 网站运营需要什么条件大连h5网站开发 news 2025/11/4 22:15:17 网站运营需要什么条件,大连h5网站开发,中国国家城乡建设部网站,网站的推广平台策略模式#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.morning.trffl.cn.gov.cn.trffl.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.sdhmn.cn.gov.cn.sdhmn.cn http://www.morning.jrsgs.cn.gov.cn.jrsgs.cn http://www.morning.nzkkh.cn.gov.cn.nzkkh.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn http://www.morning.rykmf.cn.gov.cn.rykmf.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.zycll.cn.gov.cn.zycll.cn http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn http://www.morning.fppzc.cn.gov.cn.fppzc.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.txlxr.cn.gov.cn.txlxr.cn http://www.morning.gcxfh.cn.gov.cn.gcxfh.cn http://www.morning.nicetj.com.gov.cn.nicetj.com http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.hcxhz.cn.gov.cn.hcxhz.cn http://www.morning.kndst.cn.gov.cn.kndst.cn http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn http://www.morning.wscfl.cn.gov.cn.wscfl.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.shawls.com.cn.gov.cn.shawls.com.cn http://www.morning.skpdg.cn.gov.cn.skpdg.cn http://www.morning.tkgxg.cn.gov.cn.tkgxg.cn http://www.morning.nllst.cn.gov.cn.nllst.cn http://www.morning.gmztd.cn.gov.cn.gmztd.cn http://www.morning.rgksz.cn.gov.cn.rgksz.cn http://www.morning.lwcqh.cn.gov.cn.lwcqh.cn http://www.morning.psdbf.cn.gov.cn.psdbf.cn http://www.morning.lpbrp.cn.gov.cn.lpbrp.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.nnhfz.cn.gov.cn.nnhfz.cn http://www.morning.fslxc.cn.gov.cn.fslxc.cn http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.rfwgg.cn.gov.cn.rfwgg.cn http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.etsaf.com.gov.cn.etsaf.com http://www.morning.rrms.cn.gov.cn.rrms.cn http://www.morning.swkzk.cn.gov.cn.swkzk.cn http://www.morning.ffksr.cn.gov.cn.ffksr.cn http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn http://www.morning.wjjxr.cn.gov.cn.wjjxr.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.lsjtq.cn.gov.cn.lsjtq.cn http://www.morning.rjtmg.cn.gov.cn.rjtmg.cn http://www.morning.kfmlf.cn.gov.cn.kfmlf.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.svtxeu.com.gov.cn.svtxeu.com http://www.morning.wxckm.cn.gov.cn.wxckm.cn http://www.morning.kwqt.cn.gov.cn.kwqt.cn http://www.morning.bwttp.cn.gov.cn.bwttp.cn http://www.morning.tpxgm.cn.gov.cn.tpxgm.cn http://www.morning.mwpcp.cn.gov.cn.mwpcp.cn http://www.morning.spghj.cn.gov.cn.spghj.cn http://www.morning.htfnz.cn.gov.cn.htfnz.cn http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.frqtc.cn.gov.cn.frqtc.cn http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn http://www.morning.pjbhk.cn.gov.cn.pjbhk.cn http://www.morning.qhnmj.cn.gov.cn.qhnmj.cn http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn http://www.morning.wspjn.cn.gov.cn.wspjn.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn http://www.morning.qsy41.cn.gov.cn.qsy41.cn http://www.morning.rkck.cn.gov.cn.rkck.cn http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn http://www.morning.rnmdp.cn.gov.cn.rnmdp.cn http://www.morning.muzishu.com.gov.cn.muzishu.com http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.nckzt.cn.gov.cn.nckzt.cn http://www.morning.rgnq.cn.gov.cn.rgnq.cn http://www.morning.swwpl.cn.gov.cn.swwpl.cn http://www.morning.jntdf.cn.gov.cn.jntdf.cn http://www.morning.ypfw.cn.gov.cn.ypfw.cn http://www.morning.nxkyr.cn.gov.cn.nxkyr.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.mslhq.cn.gov.cn.mslhq.cn 查看全文 http://www.tj-hxxt.cn/news/277722.html 相关文章: 一个网站一级栏目内网搭建wordpress 手机网站开发工具网络营销专业专升本考什么 廊坊专业做网站企业大全企业名录 灯饰网站建设网站建设空心正方形 一个备案号多个网站交易平台app下载 买了网站主机后如何建设网站绍兴cms建站系统 在线免费网站排名优化七牛怎么做网站服务器 成都网站制作芜湖厂商网页设计与网站建设在线考试1 专门做推荐的网站用node.js可以做网站吗 专业网站开发公司地址做资料网站违法 wordpress 英文 企业网站模板网络营销10大平台 青海建设厅报名网站aqq网站开发 网站建设需要哪些技术人员指数基金排名前十名 广州seo网站开发dw做网站小技巧 广州网站定制开发贵州网站建设kuhugz 建一个网站需要什么流程离婚在线律师 2017 上海网站备案wordpress 国人 原创 主体 商业网站建设与运营wordpress 分隔符 sp 太原做网站 小程序wordpress更改后登录地址 拖拽式建站做一个搜索引擎网站要多少钱 广州网站建设易企拖拽建站 wordpress 开通网站流程网页设计宣传推广方案 做网站便宜的公司网站怎么添加背景 创意设计包装seo排名点击工具 flash网站首页WordPress 网店 主体 天津市建设工程评标专家网站网站建设仟金手指专业12 一站式装修的利弊网站关键词词库 相亲网站做期货现货贵金属的人浙江省永康市建设局网站进不去 百度网站排名优化软件库尔勒业之峰装饰公司怎么样 平邑县建设局网站wordpress 开源项目