设计模式总结——状态模式

当对象状态转换的条件过于复杂时,把状态定义成一系列类,并将状态的判断逻辑转移各个类当中。

举个栗子,12 点时切换到状态 B,否则为状态 A: 

1.Player 类维护一个 State 变量作为当前状态。

2.定义 State 抽象状态类。包含一个 Handle 方法 ,该方法接受一个 Player 参数。

3.创建 ConcreteStateA 和 ConcreteStateB ,继承 State。

  3.1ConcreteStateA

public void Handle(Player p){
   if(当前是 12 点){
       p.state = new ConcreteStateB();
   }
}

  3.2ConcreteStateB

public void Handle(Player p){
   if(当前不是 12 点){
       p.state = new ConcreteStateA();
   }
}

    

发布了12 篇原创文章 · 获赞 2 · 访问量 6057

猜你喜欢

转载自blog.csdn.net/qq_19533777/article/details/104250089
今日推荐