State 状态

State 状态

  • 根据状态决定行为
  • state状态抽象为接口,内有m种行为(抽象方法),n个子类再实现这些行为。事务本身的类聚合状态,在内部的M种方法中调用state的实例即可

State 状态 - 图1

  1. public class State {
  2. public static void main(String[] args) {
  3. States states = new Happy();
  4. MM m = new MM(states);
  5. m.Smile();
  6. m.Say();
  7. }
  8. }
  9. interface States{
  10. void Smile();
  11. void Say();
  12. }
  13. class MM{
  14. States states;
  15. public MM(States states) {
  16. this.states = states;
  17. }
  18. void Smile(){
  19. states.Smile();
  20. }
  21. void Say(){
  22. states.Say();
  23. }
  24. }
  25. class Happy implements States{
  26. @Override
  27. public void Smile() {
  28. System.out.println("HappyMM Smile");
  29. }
  30. @Override
  31. public void Say() {
  32. System.out.println("HappyMM Say");
  33. }
  34. }