該文章屬于《編程中的那些經(jīng)典套路——設(shè)計模式匯總》系列,并且以下內(nèi)容基于語言PHP
今天我們來談?wù)勓b飾器模式,想象一個場景:
有一篇帖子
帖子的內(nèi)容我寫好了,
三個部門的人員想控制它.
編輯組要添導(dǎo)讀文字
審核組要去敏感字
市場部想在末尾加點廣告
我只是一篇帖子,由你們來處置吧。
此時如何處理呢?如何寫出符合面向?qū)ο笕匦晕逶瓌t的代碼呢?由此引出裝飾器模式就發(fā)揮作用了
一言不合來看看代碼:
裝飾器模式.php
content = $content; } public function decorator(){ return $this->content; } } //編輯類 class Editor extends BaseArt{ public function __construct($ObjArt){ $this->ObjArt = $ObjArt; $this->decorator(); } public function decorator(){ return $this->content = $this->ObjArt->content. "#編輯已添加導(dǎo)讀"; } } //審核組類 class Auditor extends BaseArt{ public function __construct($ObjArt){ $this->ObjArt = $ObjArt; $this->decorator(); } public function decorator(){ return $this->content = $this->ObjArt->content. "#審核組已閱"; } } //市場部類 class Market extends BaseArt{ public function __construct($ObjArt){ $this->ObjArt = $ObjArt; $this->decorator(); } public function decorator(){ return $this->content = $this->ObjArt->content. "#市場部已加廣告"; } } $Art = new Market(new Auditor (new Editor (new BaseArt("#基本文章")))); print_r($Art->decorator()); ?>
自始至終所有類(編輯組,審核組,市場部)操作的都是一個變量(文章:$content),我們需要對文章變量進(jìn)行潤色,我們通過外部的耦合調(diào)用,最終返回一篇潤色后的文章。
這就是裝飾器模式。
該文章屬于《編程中的那些經(jīng)典套路——設(shè)計模式匯總》系列
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/21670.html
該文章屬于《編程中的那些經(jīng)典套路——設(shè)計模式匯總》系列,并且以下內(nèi)容基于語言PHP 今天我們來談?wù)勥m配器模式。 想象一個場景: 有一個類方法它部署在服務(wù)器上,專門負(fù)責(zé)大多數(shù)語言都通用的JSON語言,而現(xiàn)在我需要調(diào)用這個類方法,但我不需要返回JSON格式的數(shù)據(jù)了,我要返回序列化后的數(shù)據(jù),我現(xiàn)在如何處理呢?是上去服務(wù)器修改這個類方法嗎?這不科學(xué)吧?因為我們原本編寫好的代碼最好就不要再改了,很容易造成...
摘要:如果看不懂的話,可以在評論區(qū)中提問,我會第一時間回答你無論何時我一直都在嗯哼該文章屬于編程中的那些經(jīng)典套路設(shè)計模式匯總系列 在正式閱讀前,我先談?wù)勎覀冊撚檬裁醋藙莺托膽B(tài)學(xué)習(xí)設(shè)計模式: 如果你還沒有過多的編程經(jīng)驗(泛指半年以下),我建議你把它當(dāng)做小說來看,能看懂多少是多少,因為半年以下經(jīng)驗的程序員用到設(shè)計模式的情況只會出現(xiàn)在面試上,至于實際工作中?相對來說這部分不會由你負(fù)責(zé)。 如果你已...
摘要:該文章屬于編程中的那些經(jīng)典套路設(shè)計模式匯總系列,并且以下內(nèi)容基于語言今天來談?wù)剺蚪幽J?,橋接模式的功能在于將兩個原本不相關(guān)的類結(jié)合在一起,然后利用兩個類中的方法和屬性,輸出一份新的結(jié)果。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計模式匯總》系列,并且以下內(nèi)容基于語言PHP 今天來談?wù)剺蚪幽J剑瑯蚪幽J降墓δ茉谟趯蓚€原本不相關(guān)的類結(jié)合在一起,然后利用兩個類中的方法和屬性,輸出一份新的結(jié)果...
摘要:該文章屬于編程中的那些經(jīng)典套路設(shè)計模式匯總系列,并且以下內(nèi)容基于語言前面我們寫了簡單工廠模式,編程中的那些套路關(guān)于簡單工廠模式,但簡單工廠模式有一些不足違反開放封閉原則,所以需要設(shè)計出一套更加規(guī)范的設(shè)計模式。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計模式匯總》系列,并且以下內(nèi)容基于語言PHP 前面我們寫了簡單工廠模式,《編程中的那些套路——關(guān)于簡單工廠模式》,但簡單工廠模式有一些不足(...
摘要:簡單工廠模式就是遵循了這一原則,它讓不同職責(zé)的類各司其職。重點來了,簡單工廠模式的不足但是簡單工廠模式有一個不足,雖然它遵循了單一職責(zé)原則,但它違反了另一條同樣很重要的原則開放封閉原則。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計模式匯總》系列,并且以下內(nèi)容基于語言PHP 面向?qū)ο笪宕笤瓌t中有一點非常重要的原則:單一職責(zé)原則。 簡單工廠模式就是遵循了這一原則,它讓不同職責(zé)的類各司其職。 ...
閱讀 993·2021-10-25 09:48
閱讀 697·2021-08-23 09:45
閱讀 2550·2019-08-30 15:53
閱讀 1805·2019-08-30 12:45
閱讀 734·2019-08-29 17:21
閱讀 3548·2019-08-27 10:56
閱讀 2605·2019-08-26 13:48
閱讀 755·2019-08-26 12:24