首页 > 解决方案 > 在状态设计模式中,为什么主类一开始就需要知道所有的状态?

问题描述

我正在读一本关于设计模式的书,代码写成:示例:

 class Fan{
   private IState State1;
   private IState State2;
  .
  .
  .
   public IState getState1(){
     return State1;
   }

   public IState getState2(){
     return State2;
   }
  

然后在每个状态中从 Fan 类中获取下一个状态:

public class State1 implements IState{
 .
 .
 .
  public void execute(){
  .
  .
  .
   this.Fan.setState(this.Fan.getState2());
}
}

现在我的问题是为什么不直接说 this.Fan.setState(new State2()); 而不是 this.Fan.setState(this.Fan.getState2()); ? 我在网上搜索了很多人建议这是正确的做法,但我找不到原因!有人可以告诉我为什么它是优势吗?

标签: design-patterns

解决方案


推荐阅读