閱讀936 返回首頁    go 阿裏雲 go 技術社區[雲棲]


【設計模式】【門麵模式,收銀-廚師-服務,用戶就餐】

/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public interface Payment
{
	//模擬顧客支付費用的方法
	String pay();
}



/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class PaymentImpl
	implements Payment
{
	//模擬顧客支付費用的方法
	public String pay()
	{
		String food = "快餐";
		System.out.println("你已經向收銀員支付了費用,您購買的食物是:"
			+ food);
		return food;
	}
}


/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public interface Cook
{
	//模擬烹調食物的方法
	String cook(String food);
}



/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public interface Cook
{
	//模擬烹調食物的方法
	String cook(String food);
}



/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public interface Cook
{
	//模擬烹調食物的方法
	String cook(String food);
}



/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public interface Cook
{
	//模擬烹調食物的方法
	String cook(String food);
}



/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class Facade
{
	//定義被Facade封裝的三個部門
	Payment pay;
	Cook cook;
	Waiter waiter;
	//構造器
	public Facade()
	{
		this.pay = new PaymentImpl();
		this.cook = new CookImpl();
		this.waiter = new WaiterImpl();
	}
	public void serveFood()
	{
		//依次調用三個部門的方法,封裝成一個serveFood()方法
		String food = pay.pay();
		food = cook.cook(food);
		waiter.serve(food);
	}
}


/**
 * Description:
 * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class Customer
{
	public void haveDinner()
	{
		//依次創建三個部門實例
/*		Payment pay = new PaymentImpl();
		Cook cook = new CookImpl();
		Waiter waiter = new WaiterImpl();
		//依次調用三個部門實例的方法來實現用餐功能
		String food = pay.pay();
		food = cook.cook(food);
		waiter.serve(food);*/
		//直接依賴於Facade類來實現用餐方法
		Facade f = new Facade();
		f.serveFood();
	}
	public static void main(String[] args)
	{
		new Customer().haveDinner();
	}
}







最後更新:2017-04-04 07:03:36

  上一篇:go XCode 4.3.2 如何新建 Window-based Application應用的簡單例子
  下一篇:go mysql 定時腳本(event),類似oracle的job