国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php教程:php設計模式介紹之策略模式

2020-03-24 16:18:44
字體:
來源:轉載
供稿:網友
上文:《PHP設計模式介紹》第六章 偽對象模式《PHP設計模式介紹》第七章 策略模式在編寫html' target='_blank'>面向對象的代碼的時,有些時候你需要一個能夠自己根據不同的條件來引入不同的操作對象實例。例如,一個菜單功能能夠根據用戶的 皮膚 首選項來決定是否采用水平的還是垂直的排列形式,或者一個計費系統可以自行根據用戶的收貨地址來決定稅率。一般來講,一個控制菜單的對象實例包括了add(), delete(), 和 replace()等菜單元素;并通過set()進行配置,用render()來管理顯示模式。無論你想生成什么樣子的菜單,你都可以用同一個對象類來處理。不同菜單的對象實例只是一些方式函數的運算規則不同罷了,至少在剛才的例子里面render()函數是不同的。但是如果你需要增加菜單的顯示模式種類,或者你需要根據用戶的國家、省份等信息來判斷菜單排列的順序的時候,該怎么做呢?而且如果有許多的方式函數都是經常變化的,那么簡單的類封裝將變得復雜、難易理解和升級的。問題怎么輕松地改變對象實例的執行過程,因而在代碼執行的時候動態地改變執行過程?一旦實現了這個功能,如果去編寫這樣的類定義從而讓維護和升級變得非常簡單呢?解決辦法當一個類封裝了多個操作的時候,對象實例可以動態地選擇這些操作來進行,可以用策略模式來把對象本身和運算規則區分開來。或者,更簡單的處理是類里面定義的方式函數用case語句來進行控制。當然更簡單的方法是使用策略模式。策略模式功能非常強大,因為這個設計模式本身的核心思想就是面向對象編程的多形性的思想。就在編程領域之外,有許多例子是關于策略模式的。如果我需要在清晨從家里去上班,我可以有幾個策略可以考慮:我可以開車,乘坐公交車,走路,汽車或者甚至是搭乘直升飛機。每個策略都可以得到相同的結果,但是它們使用了不同的資源。選擇策略的依據是費用,時間,使用工具還有每種方式的方便程度 。一個很好的策略也許在第二天就不能再被使用的,所以策略的選擇是相對的。你已經在前面的工廠模式章節看到了和策略模式相似的例子:因為不同特性的費用計算方式不同,所以Monopoly游戲框架使用了許多相似的特性類,但是因為費用的計算不是從類本身獲得,所以這個費用計算相對來說是一個TemplateMethod 設計模式。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永仁县| 佛教| 五家渠市| 方城县| 讷河市| 滨州市| 聊城市| 鹰潭市| 华蓥市| 尉犁县| 西乌| 乳山市| 英吉沙县| 讷河市| 拜城县| 泰来县| 共和县| 玛曲县| 三明市| 马边| 开封市| 邯郸县| 合山市| 耒阳市| 岳普湖县| 太白县| 固阳县| 区。| 若羌县| 波密县| 延川县| 连平县| 信宜市| 湘乡市| 大庆市| 从江县| 阜平县| 清远市| 兴宁市| 汨罗市| 霞浦县|