状态模式

2017-06-25  本文已影响0人  上海马超23
context = new Context();
context.setCurrentState(new ConcreteState1()); // 初始化状态1
context.handle1();  // 直接调用ConcreteState1.handler1()
context.handle2(); // 切换到ConcreteState2,调用handler2()。隐藏了状态的变化

总结

优点

  1. 避免了过多的条件判断,不过相应地状态子类数量会增加
  2. 状态修改只需要修改对应的状态实现子类,增加状态只要增加子类。
  3. 封装了状态的变化过程
上一篇 下一篇

猜你喜欢

热点阅读