亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

php 設(shè)計模式 之 裝飾模式

zhkai / 3335人閱讀

摘要:概念裝飾模式顧名思義,裝飾模式是一種對對象數(shù)據(jù)的多次過濾,就像裝飾一樣,一層層的修飾,獲取滿意的結(jié)果。實現(xiàn)裝飾者裝飾操作這是個洗菜操作??偨Y(jié)當(dāng)我們需要對數(shù)據(jù)進(jìn)行過濾的時候,裝飾模式可以成為你的選擇

概念:
裝飾模式: 顧名思義,裝飾模式是一種對對象數(shù)據(jù)的多次過濾,就像裝飾一樣, 一層層的修飾, 獲取滿意的結(jié)果。
裝飾模式共分為兩個部分:
1: 裝飾者: 在這個接口接口下面的類和方法用以對數(shù)據(jù)進(jìn)行修飾(即對數(shù)據(jù)進(jìn)行過濾修改)
2: 被裝飾者: 這個就是要被過濾的數(shù)據(jù)接口對象
情景:
  炒菜之前要對買來的菜進(jìn)行揀菜, 洗菜等操作。這個就類似于裝飾操作, 裝飾者就是洗凈的過程操作, 被裝飾者就是菜。
實現(xiàn):
 //裝飾者
 abstract class Decorator
 {
     //裝飾操作
    abstract function process(Cai $cai);
 }

 class XiCai extends Decorator
 {
    public function process(Cai $cai)
    {
        echo "這是個洗菜操作。
"; } } //被裝飾者 abstract class Cai { abstract function getGanJingZhi(); } //青菜 class QingCai extends Cai { public function getGanJingZhi() { return 2; } } //白菜 class BaiCai extends Cai { public function getGanJingZhi() { return 3; } } //讓已經(jīng)裝飾的裝飾者再進(jìn)行新的裝飾,表示多步過濾 abstract class DecorateActor extends Decorator { protected $decorator; public function __construct(Decorator $d) { $this->decorator = $d; } function process(Cai $cai) { $this->decorator->process($cai); } } //揀菜操作 class JianCai extends DecorateActor { public function process(Cai $cai) { echo "這是個揀菜操作。
"; parent::process($cai); //進(jìn)行下一步過濾 } } //泡菜操作 class PaoCai extends DecorateActor { public function process(Cai $cai) { echo "這是個浸泡操作。
"; parent::process($cai); //進(jìn)行下一步過濾 } } $cai = new QingCai(); $process = new JianCai(new PaoCai(new XiCai($cai))); $process->process($cai);
結(jié)果:
這是個揀菜操作。
這是個浸泡操作。
這是個洗菜操作。

總結(jié): 當(dāng)我們需要對數(shù)據(jù)進(jìn)行過濾的時候, 裝飾模式可以成為你的選擇

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/20852.html

相關(guān)文章

  • PHP設(shè)計模式裝飾模式

    摘要:裝飾器模式解決的問題修飾模式,是面向?qū)ο缶幊填I(lǐng)域中,一種動態(tài)地往一個類中添加新的行為的設(shè)計模式??梢钥吹?,這樣的模型很具有擴(kuò)者性,我們可以輕松的添加其他裝飾器給區(qū)域?qū)ο?,且不需要更改其他類? 裝飾器模式解決的問題 修飾模式,是面向?qū)ο缶幊填I(lǐng)域中,一種動態(tài)地往一個類中添加新的行為的設(shè)計模式。就功能而言,修飾模式相比生成子類更為靈活,這樣可以給某個對象而不是整個類添加一些功能。 將所有的功...

    Olivia 評論0 收藏0
  • PHP設(shè)計模式裝飾模式

    摘要:概念裝飾器模式允許向一個現(xiàn)有的對象添加新的功能,同時又不改變其結(jié)構(gòu)。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一個包裝。這種模式創(chuàng)建了一個裝飾類,用來包裝原有的類,并在保持類方法簽名完整性的前提下,提供了額外的功能。 概念 裝飾器模式(Decorator Pattern)允許向一個現(xiàn)有的對象添加新的功能,同時又不改變其結(jié)構(gòu)。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的...

    CloudwiseAPM 評論0 收藏0
  • php裝飾模式

    裝飾者模式概念 動態(tài)地將責(zé)任附加到對象上,若要擴(kuò)展功能,裝飾者提供了比繼承更有彈性的替代方案 裝飾者模式結(jié)構(gòu)圖 showImg(https://segmentfault.com/img/bVKmnl?w=1040&h=795); 裝飾者角色 1.被裝飾者基類(Compoent):對象組件2.待裝飾對象(ConcreteComponent):具體組件角色,即將要被裝飾增加功能的類3.裝飾者基類(De...

    pf_miles 評論0 收藏0
  • PHP設(shè)計模式裝飾模式

    摘要:后盾人人人做后盾定義裝飾對象裝飾器規(guī)范的接口被裝飾者后盾網(wǎng)抽象裝飾器維護(hù)裝飾鏈條的抽象類裝飾器用于裝飾被裝飾者裝飾器

    GitCafe 評論0 收藏0
  • PHPer月工作總結(jié)觀察者&裝飾模式

    摘要:我們可以把取消發(fā)貨單和取消訂單看成一個被觀察或被訂閱的類實例的對象,一旦發(fā)生取消行為,我們立即通知各個觀察者做出相對應(yīng)的行為。裝飾器模式裝飾器思想,不管以前業(yè)務(wù)邏輯,甚至不去讀,調(diào)用之前的接口裝飾上新的數(shù)據(jù),達(dá)到自己的目的。 前言 還是每月的目標(biāo)至少寫一篇文章,一晃八月份就要過去了,這個月依然沒有什么產(chǎn)出,毫無疑問最近的狀態(tài)就是不停的工作,不停的加班。所以還是把最近工作進(jìn)行一個總結(jié),首...

    MadPecker 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<