溫故而知新,每次讀設計模式都會有不同的體驗,堅持每天一個設計模式,直到熟練運用設計模式。 策略模式定義了很多完成相同工作的算法,但實現不同,它可以以相同的方式調用所有的算法,減少了算法和調用算法的耦合。 以下是大話設計模式的策略類圖 ...
策略模式 Strategy Pattern :它定義了算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓算法的變化,不會影響到使用算法的客戶. 下面是一個商場活動的實現 這幾個類的設計如下圖: 使用一個策略類CashSuper定義需要的算法的公共接口,定義三個具體策略類:CashNormal,CashRebate,CashReturn,繼承於CashSuper,定義一個上下文管理類,接收一個 ...
2017-10-30 11:28 0 4245 推薦指數:
溫故而知新,每次讀設計模式都會有不同的體驗,堅持每天一個設計模式,直到熟練運用設計模式。 策略模式定義了很多完成相同工作的算法,但實現不同,它可以以相同的方式調用所有的算法,減少了算法和調用算法的耦合。 以下是大話設計模式的策略類圖 ...
抽象工廠模式(Abstract Factory Pattern):提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們的類 下面是一個抽象工廠的demo: 上面類的設計如下圖: 優點: 具體工廠類如MysqlFactory在一個應用中只需要初始化一次 ...
建造者模式(Builder Pattern):將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示 下面是一個建造者模式的demo 上面類的設計如下圖: 指揮者Director 調用建造者Builder的對象 具體的建造過程是在Builder的子類 ...
狀態模式(State Pattern):當一個對象的內在狀態改變時允許改變其行為,這個對象看起來像是改變了其類 下面是一個狀態模式的demo: 上面類的設計如下圖: 應用場景:當控制一個對象的狀態轉換的條件表達式過於復雜時,把狀態的判斷邏輯轉移到表示不同狀態 ...
代理模式(Proxy Pattern):為其他對象提供一種代理以控制對這個對象的訪問 上面的類的設計如下圖: 代理類Proxy引用代理的實體Pursite,提供與Pursite相同的接口來代替實體 作者:Andy 出處:http ...
組合模式(Composite Pattern):將對象組合成成樹形結構以表示“部分-整體”的層次結構,組合模式使得用戶對單個對象和組合對象的使用具有一致性. 下面是一個組合模式的demo: 上面類的設計如下圖: 應用場景: 在需要體現部分與整體層次的結構時 希望用戶忽略 ...
工廠方法模式(Factory Method Pattern):定義一個用於創建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類. 上面類的設計如下圖: 創建一個抽象工廠類CreateLeiFeng和一個抽象對象類LeiFeng,當創建具體 ...
前言:看這本書的時候我還是個小白,第二次看的時候已經要面臨找新工作了,第三次看的時候已經換了心境。用了三次 跨越三年的時間才看完這本書,真該早點看完。 每章小結: 1:簡單工廠:計算器 加法、減法、乘法、除法 2:策略模式:商場促銷方案 3:單一職責:手機與相機 4:開發-封閉原則 ...