課程
/后端開發(fā)
/PHP
/大話PHP設(shè)計(jì)模式
雖然知道怎么用了,但是在什么樣的場景下會用到呢?
<?php //?雖然知道怎么用了,但是在什么樣的場景下會用到呢?
2015-03-04
源自:大話PHP設(shè)計(jì)模式 14-6
正在回答
?*?場景描述: ?*?以購票為核心業(yè)務(wù)(此模式不限于該業(yè)務(wù)),但圍繞購票會產(chǎn)生不同的其他邏輯,如: ?*?1、購票后記錄文本日志 ?*?2、購票后記錄數(shù)據(jù)庫日志 ?*?3、購票后發(fā)送短信 ?*?4、購票送抵扣卷、兌換卷、積分 ?*?5、其他各類活動(dòng)等 ?* ?*?傳統(tǒng)解決方案: ?*?在購票邏輯等類內(nèi)部增加相關(guān)代碼,完成各種邏輯。 ?* ?*?存在問題: ?*?1、一旦某個(gè)業(yè)務(wù)邏輯發(fā)生改變,如購票業(yè)務(wù)中增加其他業(yè)務(wù)邏輯,需要修改購票核心文件、甚至購票流程。 ?*?2、日積月累后,文件冗長,導(dǎo)致后續(xù)維護(hù)困難。 ?* ?*?存在問題原因主要是程序的"緊密耦合",使用觀察模式將目前的業(yè)務(wù)邏輯優(yōu)化成"松耦合",達(dá)到易維護(hù)、易修改的目的, ?*?同時(shí)也符合面向接口編程的思想。 ?* ?*?觀察者模式典型實(shí)現(xiàn)方式: ?*?1、定義2個(gè)接口:觀察者(通知)接口、被觀察者(主題)接口 ?*?2、定義2個(gè)類,觀察者對象實(shí)現(xiàn)觀察者接口、主題類實(shí)現(xiàn)被觀者接口 ?*?3、主題類注冊自己需要通知的觀察者 ?*?4、主題類某個(gè)業(yè)務(wù)邏輯發(fā)生時(shí)通知觀察者對象,每個(gè)觀察者執(zhí)行自己的業(yè)務(wù)邏輯。
這是一個(gè)應(yīng)用場景的舉例。其他的你去搜一下吧,很多的。
舉報(bào)
幫助PHPer具備使用設(shè)計(jì)模式解決工程中復(fù)雜邏輯的能力
3 回答觀察者模式的疑問
2 回答PHP設(shè)計(jì)模式的觀察者模式, 添加事件觀察
4 回答觀察者模式重復(fù)調(diào)用問題
3 回答觀察者模式使用場景--php設(shè)計(jì)模式(http://idcbgp.cn/video/5037)
1 回答請問觀察者模式和裝飾器模式有什么異同?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-03-04
這是一個(gè)應(yīng)用場景的舉例。其他的你去搜一下吧,很多的。