17年10月项目--快速充值

Posted 安卓笔记侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17年10月项目--快速充值相关的知识,希望对你有一定的参考价值。

状态模式:允许通过改变对象内部的状态来改变对象的行为,这个对象的改变就像是改变了这个类一样。

 

第一步:创建State抽象类 定义一个具体的状态所对应的响应行为的抽象方法。

public abstract class State {
    public abstract void oper(Operation oper);
}

**第二步 **:创建具体的State类 具体的状态类,继承State并实现该状态的行为操作。

public class CtrlC extends State{

    //Ctrl C
    @Override
    public void oper(Operation oper) {
        if("Ctrl+c".equals(oper.getOper())){
            System.out.println("copy operation");
        }else{
            oper.setState(new CtrlV());
            oper.doOper();
        }
    }

}
public class CtrlV extends State{

    //Ctrl V
    @Override
    public void oper(Operation oper) {
        if("Ctrl+v".equals(oper.getOper())){
            System.out.println("paste operation");
        }else{
            oper.setState(new CtrlX());
            oper.doOper();
        }
    }

}  
public class CtrlX extends State{

    //Ctrl X
    @Override
    public void oper(Operation oper) {
        if("Ctrl+x".equals(oper.getOper())){
            System.out.println("cut operation");
        }else{
            System.out.println("error");
        }
    }

}

第三步:创建Context   Context:含有State的一个引用,并负责调用具体状态类的行为操作。

public class Operation {
    private String oper;
    private State state;
    
    //init concrete State
    public Operation(){
        state = new CtrlC();
    }
    
    //execute specific operation,then change current State
    public void doOper(){
        state.oper(this);
        state = new CtrlC();
    }
    
    
    
    public State getState() {
        return state;
    }
    public void setState(State state) {
        this.state = state;
    }
    public String getOper() {
        return oper;
    }
    public void setOper(String oper) {
        this.oper = oper;
    }
    
}

第四步:测试

public class MainClass {
    public static void main(String[] args) {
        
        Operation operation = new Operation();
        
        operation.setOper("Ctrl+c");
        operation.doOper();
        
        operation.setOper("Ctrl+v");
        operation.doOper();
        
        operation.setOper("Ctrl+c");
        operation.doOper();
    }
}

 

以上是关于17年10月项目--快速充值的主要内容,如果未能解决你的问题,请参考以下文章

SQA

SQA计划

项目记录-上门洗车-汽车服务

go·多彩在先农大院4周年活动月里,听听院子里的故事

2018年12月学习资源留存

2012年10月17日