該文章屬于《編程中的那些經典套路——設計模式匯總》系列,并且以下內容基于語言PHP
今天我們來談談裝飾器模式,想象一個場景:
有一篇帖子
帖子的內容我寫好了,
三個部門的人員想控制它.
編輯組要添導讀文字
審核組要去敏感字
市場部想在末尾加點廣告
我只是一篇帖子,由你們來處置吧。
此時如何處理呢?如何寫出符合面向對象三特性五原則的代碼呢?由此引出裝飾器模式就發揮作用了
一言不合來看看代碼:
裝飾器模式.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. "#編輯已添加導讀"; } } //審核組類 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),我們需要對文章變量進行潤色,我們通過外部的耦合調用,最終返回一篇潤色后的文章。
這就是裝飾器模式。
該文章屬于《編程中的那些經典套路——設計模式匯總》系列
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21670.html
該文章屬于《編程中的那些經典套路——設計模式匯總》系列,并且以下內容基于語言PHP 今天我們來談談適配器模式。 想象一個場景: 有一個類方法它部署在服務器上,專門負責大多數語言都通用的JSON語言,而現在我需要調用這個類方法,但我不需要返回JSON格式的數據了,我要返回序列化后的數據,我現在如何處理呢?是上去服務器修改這個類方法嗎?這不科學吧?因為我們原本編寫好的代碼最好就不要再改了,很容易造成...
摘要:如果看不懂的話,可以在評論區中提問,我會第一時間回答你無論何時我一直都在嗯哼該文章屬于編程中的那些經典套路設計模式匯總系列 在正式閱讀前,我先談談我們該用什么姿勢和心態學習設計模式: 如果你還沒有過多的編程經驗(泛指半年以下),我建議你把它當做小說來看,能看懂多少是多少,因為半年以下經驗的程序員用到設計模式的情況只會出現在面試上,至于實際工作中?相對來說這部分不會由你負責。 如果你已...
摘要:該文章屬于編程中的那些經典套路設計模式匯總系列,并且以下內容基于語言今天來談談橋接模式,橋接模式的功能在于將兩個原本不相關的類結合在一起,然后利用兩個類中的方法和屬性,輸出一份新的結果。 該文章屬于《編程中的那些經典套路——設計模式匯總》系列,并且以下內容基于語言PHP 今天來談談橋接模式,橋接模式的功能在于將兩個原本不相關的類結合在一起,然后利用兩個類中的方法和屬性,輸出一份新的結果...
摘要:該文章屬于編程中的那些經典套路設計模式匯總系列,并且以下內容基于語言前面我們寫了簡單工廠模式,編程中的那些套路關于簡單工廠模式,但簡單工廠模式有一些不足違反開放封閉原則,所以需要設計出一套更加規范的設計模式。 該文章屬于《編程中的那些經典套路——設計模式匯總》系列,并且以下內容基于語言PHP 前面我們寫了簡單工廠模式,《編程中的那些套路——關于簡單工廠模式》,但簡單工廠模式有一些不足(...
摘要:簡單工廠模式就是遵循了這一原則,它讓不同職責的類各司其職。重點來了,簡單工廠模式的不足但是簡單工廠模式有一個不足,雖然它遵循了單一職責原則,但它違反了另一條同樣很重要的原則開放封閉原則。 該文章屬于《編程中的那些經典套路——設計模式匯總》系列,并且以下內容基于語言PHP 面向對象五大原則中有一點非常重要的原則:單一職責原則。 簡單工廠模式就是遵循了這一原則,它讓不同職責的類各司其職。 ...
閱讀 819·2021-10-25 09:48
閱讀 611·2021-08-23 09:45
閱讀 2496·2019-08-30 15:53
閱讀 1759·2019-08-30 12:45
閱讀 586·2019-08-29 17:21
閱讀 3407·2019-08-27 10:56
閱讀 2547·2019-08-26 13:48
閱讀 691·2019-08-26 12:24