中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > php設(shè)計(jì)模式介紹之策略模式
php設(shè)計(jì)模式介紹之迭代器模式 回到列表 php設(shè)計(jì)模式介紹之偽對象模式
 php設(shè)計(jì)模式介紹之策略模式

作者:hosander 時間: 2008-07-24 文檔類型:翻譯 來自:

第 1 頁 php設(shè)計(jì)模式介紹之策略模式 [1]
第 2 頁 php設(shè)計(jì)模式介紹之策略模式 [2]
第 3 頁 php設(shè)計(jì)模式介紹之策略模式 [3]
第 4 頁 php設(shè)計(jì)模式介紹之策略模式 [4]
第 5 頁 php設(shè)計(jì)模式介紹之策略模式 [5]

上文:《PHP設(shè)計(jì)模式介紹》第六章 偽對象模式

《PHP設(shè)計(jì)模式介紹》第七章 策略模式

在編寫面向?qū)ο蟮拇a的時,有些時候你需要一個能夠自己根據(jù)不同的條件來引入不同的操作對象實(shí)例。例如,一個菜單功能能夠根據(jù)用戶的“皮膚”首選項(xiàng)來決定是否采用水平的還是垂直的排列形式,或者一個計(jì)費(fèi)系統(tǒng)可以自行根據(jù)用戶的收貨地址來決定稅率。

一般來講,一個控制菜單的對象實(shí)例包括了add(), delete(), 和 replace()等菜單元素;并通過set()進(jìn)行配置,用render()來管理顯示模式。無論你想生成什么樣子的菜單,你都可以用同一個對象類來處理。不同菜單的對象實(shí)例只是一些方式函數(shù)的運(yùn)算規(guī)則不同罷了,至少在剛才的例子里面render()函數(shù)是不同的。

但是如果你需要增加菜單的顯示模式種類,或者你需要根據(jù)用戶的國家、省份等信息來判斷菜單排列的順序的時候,該怎么做呢?而且如果有許多的方式函數(shù)都是經(jīng)常變化的,那么簡單的類封裝將變得復(fù)雜、難易理解和升級的。

問題

怎么輕松地改變對象實(shí)例的執(zhí)行過程,因而在代碼執(zhí)行的時候動態(tài)地改變執(zhí)行過程?一旦實(shí)現(xiàn)了這個功能,如果去編寫這樣的類定義從而讓維護(hù)和升級變得非常簡單呢?

解決辦法

當(dāng)一個類封裝了多個操作的時候,對象實(shí)例可以動態(tài)地選擇這些操作來進(jìn)行,可以用策略模式來把對象本身和運(yùn)算規(guī)則區(qū)分開來;蛘,更簡單的處理是類里面定義的方式函數(shù)用case語句來進(jìn)行控制。當(dāng)然更簡單的方法是使用策略模式。

策略模式功能非常強(qiáng)大,因?yàn)檫@個設(shè)計(jì)模式本身的核心思想就是面向?qū)ο缶幊痰亩嘈涡缘乃枷搿?/p>

就在編程領(lǐng)域之外,有許多例子是關(guān)于策略模式的。如果我需要在清晨從家里去上班,我可以有幾個策略可以考慮:我可以開車,乘坐公交車,走路,汽車或者甚至是搭乘直升飛機(jī)。每個策略都可以得到相同的結(jié)果,但是它們使用了不同的資源。選擇策略的依據(jù)是費(fèi)用,時間,使用工具還有每種方式的方便程度 。一個很好的策略也許在第二天就不能再被使用的,所以策略的選擇是相對的。

你已經(jīng)在前面的工廠模式章節(jié)看到了和策略模式相似的例子:因?yàn)椴煌匦缘馁M(fèi)用計(jì)算方式不同,所以Monopoly游戲的框架使用了許多相似的特性類,但是因?yàn)橘M(fèi)用的計(jì)算不是從類本身獲得,所以這個費(fèi)用計(jì)算相對來說是一個TemplateMethod 設(shè)計(jì)模式。

出處:
責(zé)任編輯:bluehearts

上一頁 下一頁 php設(shè)計(jì)模式介紹之策略模式 [2]

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
php設(shè)計(jì)模式介紹之迭代器模式
php設(shè)計(jì)模式介紹之偽對象模式
php設(shè)計(jì)模式介紹之注冊模式
php設(shè)計(jì)模式介紹之單件模式
flash+php+mysql簡單留言本教程
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大福“敬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:1/51個記錄/頁 轉(zhuǎn)到 頁 共5個記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報(bào)告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報(bào)告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報(bào)告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2