设计模式之状态模式java ——购物
1、定义状态接口,也可以是抽象类abstract,这里我喜欢用接口Interface
- 购物接口
// 购物接口
public interface IShopping
{
<span style="white-space:pre"> </span>//接口是模拟购物2中情况,正常销售,促销活动。两个状态
<span style="white-space:pre"> </span>public void sale();
}
2、实例化具体的状态,这里我有两个一个是正常购物,一个促销购物
- 正常购物
// 平常购物类实现购物接口
public class ImpNormalShopping implements IShopping
{
@Override
public void sale()
{
System.out.println("正常情况下,只买自己 1 件的东西!!!");
}
}
- 促销购物
// 活动促销类实现购物接口
public class ImplActiveShopping implements IShopping
{
@Override
public void sale()
{
System.out.println("促销、大甩卖了,买了一大堆东西!!!");
}
public void setStatue( IShopping statue)
{
statue.sale();
}
}
- 控制状态的类
// 商家控制类
public class ConreateBoss
{
/**
* 模拟具体的卖家
*/
// 默认是正常销售
private IShopping statue = new ImpNormalShopping();
public ConreateBoss()
{
}
public void sale()
{
statue.sale();
}
public void setStatue(IShopping statue)
{
this.statue = statue;
}
}
- 客户端显示
// 客户端
public class Main
{
public static void main(String[] args)
{
// 一般买家都是少买东西
ConreateBoss boss = new ConreateBoss();
boss.sale();
// 活动来了,就多买点,因为便宜嘛
boss.setStatue(new ImplActiveShopping());
boss.sale();
}
}
- 运行结果