状态模式是java设计模式里面一种比较简单的设计模式 我们在项目开发过程中会遇到,很多的条件判断当,条件判断比较多(if else语局,swith() case 语句对应的case的时候,就需要用到状态模式)
public class NoStatusParrten {
public static void main(String[] agr){
int a =1;
if(a==0){
System.out.println(a);
}else if(a==1){
System.out.println(a);
}else if(a==2){
System.out.println(a);
}else if(a==3){
System.out.println(a);
}else if(a==4){
System.out.println(a);
}
}
}
试想一下如果每一种if里面的业务逻辑处理很复杂,这个类的代码行数会剧增,结构就会混乱,不便于梳理代码
public class StatusPattern { public void sysOut(int a){ if(a == 0){ System.out.println(a); }else{ StatusPatternOne one = new StatusPatternOne(); one.sysOut(a); } }
public static void main(String[] args) {
StatusPattern statuspattern = new StatusPattern();
statuspattern.sysOut(3);
}
}
public class StatusPatternOne { public void sysOut(int a){
if(a == 1){
System.out.println(a);
}else{
StatusPatternTwo two = new StatusPatternTwo();
two.sysOut(a);
}
}
} public class StatusPatternTwo { public void sysOut(int a){
if(a == 2){
System.out.println(a);
}else{
StatusPatternThree three = new StatusPatternThree();
three.sysOut(a);
}
}
}
这样分状态管理,每个类只需要管理自己对应状态的业务逻辑处理,不是自己对应状态的,交给下一个状态对应的类处理。把复杂的业务逻辑简单化,消除庞大分支语气