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