zoukankan      html  css  js  c++  java
  • 第十六章 状态模式

    好处:将与特定状态相关的行为局部化,并将不同状态的行为分割开来。

    当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式。

    /**
     * Created by hero on 16-4-4.
     */
    public abstract class State {
        public abstract void handle(Context context);
    }
    /**
     * Created by hero on 16-4-4.
     */
    public class ConcreteStateA extends State {
        @Override
        public void handle(Context context) {
            System.out.println("state a");
            context.setState(new ConcreteStateB());
            context.request();
        }
    }
    /**
     * Created by hero on 16-4-4.
     */
    public class ConcreteStateB extends State {
        @Override
        public void handle(Context context) {
            System.out.println("state b--->the end state");
            //context.setState(new ConcreteStateA());
        }
    }
    /**
     * Created by hero on 16-4-4.
     */
    public class Context {
        private State state;
    
        public void request() {
            state.handle(this);
        }
    
        public Context(State state) {
            this.state = state;
        }
    
        public State getState() {
            return state;
        }
    
        public void setState(State state) {
            this.state = state;
        }
    }
    public class Main {
        public static void main(String[] args) {
            Context context = new Context(new ConcreteStateA());
            context.request();
        }
    }
  • 相关阅读:
    STL常见用法
    7-1 求a/b的高精度值 (70分)
    迷宫问题
    ES6新特性之箭头函数语法
    2020软件工程作业05
    2020软件工程作业04
    CTF之SQL注入1
    CTF之Git泄露
    CTF之网站源码
    CTF之HTTP基础认证
  • 原文地址:https://www.cnblogs.com/littlehoom/p/5353122.html
Copyright © 2011-2022 走看看