設計模式之狀態模式java ——購物

設計模式之狀態模式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();
	}
}

  • 運行結果



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章