状态模式(state),是一种行为性模型,行为型模式关注的是系统中对象之间的相互交互,解决系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。相比来说,创建型模式关注对象的创建过程,结构型模式关注对象和类的组合关系。
模式的职责
一个对象有很多状态,不同的状态需要不同的处理的时候需要一个模式来统一管理,状态模式的职责就是管理这种情况。 用于解决系统中复杂对象的状态沌河以及不同状态下行为的封装问题。
模式的结构
Context环境类:环境类中维护一个State对象,他是定义了当前的状态。 State抽象状态类 ConcreteState具体状态类:每一个类封装了一个状态对应的行为。
模式的实现
public interface State {
void handle();
}
class smallClient implements State{
public void handle() {
System.out.println(
"我是小额用户");
}
}
class bigClient implements State{
public void handle() {
System.out.println(
"我大额用户");
}
}
public class Context {
private State state;
public void setState(State state){
this.state = state;
state.handle();
}
public void setState(
double number){
if(number<
100000){
this.state =
new smallClient();
}
else{
this.state =
new bigClient();
}
state.handle();
}
}
public class Client {
public static void main(String[] args) {
Context t =
new Context();
t.setState(
2000);
}
}
模式的应用
开发中很多对象会根据对象不同的状态来进行不同的操作,这个时候可以使用状态模式。
转载请注明原文地址: https://ju.6miu.com/read-1298030.html