国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肥西县| 枞阳县| 克东县| 南阳市| 喀喇沁旗| 泉州市| 合作市| 郴州市| 康乐县| 内江市| 镇原县| 定结县| 防城港市| 波密县| 梁平县| 无锡市| 金乡县| 鄂托克前旗| 玉树县| 桐梓县| 永德县| 梧州市| 南康市| 泽普县| 阿克| 新民市| 浮梁县| 西乌珠穆沁旗| 精河县| 通州区| 吴川市| 大理市| 桑日县| 澄城县| 横山县| 合水县| 阿拉尔市| 仙居县| 芦溪县| 宁安市| 马鞍山市|