【設計模式】【門麵模式,收銀-廚師-服務,用戶就餐】
/** * 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
上一篇:
XCode 4.3.2 如何新建 Window-based Application應用的簡單例子
下一篇:
mysql 定時腳本(event),類似oracle的job
李飛飛力讚論文:描述視頻密集事件新模型 !(附論文)
Windows Server 2008 R2 中 Web 服務器 (IIS) 角色的新增功能
在阿裏雲ECS上輕鬆實現無域控的SQL Server AlwaysOn可用性組
智慧醫療會讓醫療資源像共享單車一樣普及嗎?
在Win2003、Win7、XP中配置IIS搭建ASP.NET Web網站或應用程序(1)
網絡子係統76_套接字綁定
第三章 AOP 基於Schema的AOP
ObjectArx學習筆記-選擇文件及ACHAR用法
黑客離我們有多近?
【分享】小程序購物車demo演示實例(全選與不全選、數量加減、價格匯總、刪除提示)