摘要: 概念:觀察者模式定義了一對(duì)多依賴,這樣一來(lái),當(dāng)一個(gè)對(duì)象改變狀態(tài)時(shí),它的所有依賴者都會(huì)收到通知并自動(dòng)更新。
舉個(gè)網(wǎng)上商城的例子,比如很多顧客對(duì)某個(gè)商品感興趣,把商品收藏,當(dāng)該商品降價(jià)、促銷、有貨了等事件發(fā)生時(shí),就會(huì)發(fā)Email通知顧客。
UML圖... 閱讀全文
2011年4月6日 #
摘要: 概念:觀察者模式定義了一對(duì)多依賴,這樣一來(lái),當(dāng)一個(gè)對(duì)象改變狀態(tài)時(shí),它的所有依賴者都會(huì)收到通知并自動(dòng)更新。
舉個(gè)網(wǎng)上商城的例子,比如很多顧客對(duì)某個(gè)商品感興趣,把商品收藏,當(dāng)該商品降價(jià)、促銷、有貨了等事件發(fā)生時(shí),就會(huì)發(fā)Email通知顧客。
UML圖... 閱讀全文
從今天開(kāi)始,把常用的設(shè)計(jì)模式都簡(jiǎn)單的整理一遍,希望每個(gè)星期能至少整理2個(gè)模式吧,先從簡(jiǎn)單的策略模式開(kāi)始。
概念:它定義了一系列的算法,并將每一個(gè)算法封裝起來(lái),而且使它們還可以相互替換。策略模式讓算法的變化不會(huì)影響到使用算法的客戶。 策略模式很簡(jiǎn)單,實(shí)際上就是OO中的多態(tài),舉個(gè)例子,某商場(chǎng)要進(jìn)行促銷,對(duì)于普通顧客打88折,對(duì)于銀卡客戶在88折基礎(chǔ)上再滿400減160,對(duì)于金卡客戶在88折基礎(chǔ)上再滿400減200。 UML圖如下所示: 接口DiscountStrategy代碼如下: ![]() ![]() ![]() 類GeneralDiscountStrategy類代碼如下: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 類SilverDiscountStrategy類代碼如下: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 類GoldenDiscountStrategy代碼如下: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 類Cashier代碼如下: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |