美文网首页
基于ET的设计模式 二

基于ET的设计模式 二

作者: 贝塔酱酱 | 来源:发表于2021-11-06 13:04 被阅读0次

状态模式(State)

公司目前项目做一款挂机卡牌游戏,核心战斗中角色的管理,场景的管理,都用到了状态模式。
状态模式是设计模式中,游戏开发最常用也是最重要的模式。

状态模式有三要素:
Context:拥有状态的类。
State:状态模式的基类。
ConcreteState:具体状态。

举个例子:一个手机的网络状态,
Context:手机的网络
State: 未连接,连接中 ,已连接。
ConcreteState:State 对应的图标。


image.png

状态过度:未连接 ---> 连接中 ---> 已连接。(因为就算是光速也需要时间)

可以是枚举,懒得写了, 1 ,2,3 对应:未连接,连接中 ,已连接

现在是敲代码时间:

Phone.cs

  public class Phone :Entity
  {
      State mState = null;
  }
 
  public void Request(int cValue)
  {
      mState.Handle(cValue);
  }

  public void SetState(State cState)
  {
      mState=cState;    
  }


State.cs

public abstract class State
{
    Context mContext = null;
    public State (Context cContext)
    {
        mContext  = cContext;
    }

    public abstract void Handle(int cValue);
}

public class ConcreteState01 : State
{
    public override void Handle(int cValue)
    {
        //这里是状态过度,由 1 到 2 
        if(cValue == 2)
        {
              // ConcreteState02 是连接中
              mContext.SetState(New ConcreteState02(mContext) )
        }            
    }
}

...


以上3个具体类,都需要重新定义 Handle ,用来区分具体的 显示WIFI图标。这里就省略了。

void test()
{

    Phone tPhone = new Phone();
    tPhone .SetState(New ConcreteState01());

    if(xxx) //这里是业务逻辑,比如:这个电话目前断网,刚有信号 
    tPhone.Request(2);

}


ET里边真实项目用到最多的就是FSM。网上我看有很多人都实现过,回头找到一个好的版本贴到这里。

相关文章

  • 基于ET的设计模式 二

    状态模式(State) 公司目前项目做一款挂机卡牌游戏,核心战斗中角色的管理,场景的管理,都用到了状态模式。状态模...

  • 基于ET的设计模式 一

    其实ET主要是ECS的思路,不过OO的设计模式也可以借鉴一些好的。毕竟基于类。ET将数据放在Entity,将方法放...

  • 【设计模式】工厂模式

    【设计模式】工厂模式 @(04【 设计模式 】)[=设计模式] 公司项目众多,不同项目基于芯片平台方案(Amlog...

  • iOS 基于MVC设计模式的基类设计

    iOS 基于MVC设计模式的基类设计

  • 8月11日——《赢在顶层设计》摘录

    商业模式设计就是基于未来看现在,基于对手看自己,基于客户看产品,基于价值看创新,商业模式设计好,对外才能找准市场的...

  • 设计模式之创建型

    设计模式概述 基于设计原则,GoF(设计模式总结4人组)总结了软件开发领域的23个经典设计模式。虽然GoF设计模式...

  • 设计模式之结构型

    设计模式概述 基于设计原则,GoF(设计模式总结4人组)总结了软件开发领域的23个经典设计模式。虽然GoF设计模式...

  • 设计模式之行为型

    设计模式概述 基于设计原则,GoF(设计模式总结4人组)总结了软件开发领域的23个经典设计模式。虽然GoF设计模式...

  • 基于BIM的设计流程与传统设计流程对比有哪些改变?

    传统的结构设计是一种基于二维图纸的工作模式,基于BIM的结构设计在设计流程上不同于传统的结构设计,弱化了传统设计流...

  • 新型商业模式

    千付通模式是基于人性设计的商业模式

网友评论

      本文标题:基于ET的设计模式 二

      本文链接:https://www.haomeiwen.com/subject/perqzltx.html