- 新建项目类,类名:Product
package com.StatePattern;
import java.util.ArrayList;
import java.util.List;
/**
* 运行的系统项目,出现异常信息发送短消息
* 异常数量:= 1--5 警告
* 异常数量:= 6--10 严重
* 异常数量:>10 崩溃
*/
public class Product {
private List list = new ArrayList<>();
public void Add(AbstractState abstractState)
{
list.add(abstractState);
}
//异常数量
private int exceptionCount;
//发送信息
public void setExceptionCount(int exceptionCount) {
this.exceptionCount = exceptionCount;
list.forEach( o ->{
o.exceptionCount = this.exceptionCount;
o.Sender();
});
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 新建状态抽象类,类名:AbstractState
package com.StatePattern;
/**
* 状态接口类
*/
public abstract class AbstractState {
public int exceptionCount;
public abstract void Sender();
}
- 新建警告状态实现类,类名:WarningState
package com.StatePattern;
/**
* 警告状态类
*/
public class WarningState extends AbstractState {
@Override
public void Sender()
{
if(this.exceptionCount <=5)
System.out.println("警告信息!");
}
}
- 新建严重状态实现类,类名:SeriousState
package com.StatePattern;
/**
* 严重状态类
*/
public class SeriousState extends AbstractState{
@Override
public void Sender() {
if(this.exceptionCount>=6&&this.exceptionCount<=10)
System.out.println("严重信息!");
}
}
- 新建崩溃状态实现类,类名:CollapseState
package com.StatePattern;
/**
* 崩溃状态类
*/
public class CollapseState extends AbstractState {
@Override
public void Sender() {
if(this.exceptionCount>=11)
System.out.println("崩溃信息!");
}
}
- 入口函数类:
//项目类
Product product = new Product();
//添加状态对象
product.Add(new WarningState());
product.Add(new CollapseState());
product.Add(new SeriousState());
//赋值并发送信息
product.setExceptionCount(10);