第90章(1 / 1)

大B:“我就以咖啡外賣店寫幾個java類來描述說明Flyweight設計模式的實現方式吧。”

客戶買咖啡下訂單,訂單隻區分咖啡口味,如果下了1W個訂單,而咖啡店隻賣20種口味的咖啡,那麼我們就沒有必要生成1W個訂單對象,通過享元模式我們隻需要生成20個訂單對象。

這個例子舉的不太好,但足以說明問題。下麵是具體的代碼。

4、客戶類、帶有main方法的測試類

//執行賣出動作

//獲取咖啡口味

……1end

(“賣出一杯[”+flavor+“]。”);

……2end

//訂單池

//靜態工廠,負責生成訂單對象

//獲得訂單

//獲得新口味訂單

//放入對象池

//獲得已經賣出的咖啡全部口味數量

……3end

//客戶下的訂單

//訂單對象生成工廠

//增加訂單

//訂單生成工廠

//增加訂單

takeOrders(“摩卡”);

takeOrders(“卡布奇諾”);

takeOrders(“香草星冰樂”);

takeOrders(“香草星冰樂”);

takeOrders(“拿鐵”);

takeOrders(“卡布奇諾”);

takeOrders(“拿鐵”);

takeOrders(“卡布奇諾”);

takeOrders(“摩卡”);

takeOrders(“香草星冰樂”);

takeOrders(“卡布奇諾”);

takeOrders(“摩卡”);

takeOrders(“香草星冰樂”);

takeOrders(“拿鐵”);

takeOrders(“拿鐵”);

//賣咖啡

//打印生成的訂單java對象數量

//打印生成的訂單java對象數量

(本章完)