欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php設(shè)計(jì)模式 Decorator(裝飾模式)

 更新時(shí)間:2011年06月26日 11:21:59   作者:  
動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé),就擴(kuò)展功能而言比生成子類方式更為靈活
復(fù)制代碼 代碼如下:

<?php
/**
* 裝飾模式
*
* 動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé),就擴(kuò)展功能而言比生成子類方式更為靈活
*/
header("Content-type:text/html;charset=utf-8");
abstract class MessageBoardHandler
{
public function __construct(){}
abstract public function filter($msg);
}

class MessageBoard extends MessageBoardHandler
{
public function filter($msg)
{
return "處理留言板上的內(nèi)容|".$msg;
}
}

$obj = new MessageBoard();
echo $obj->filter("一定要學(xué)好裝飾模式<br/>");

// --- 以下是使用裝飾模式 ----
class MessageBoardDecorator extends MessageBoardHandler
{
private $_handler = null;

public function __construct($handler)
{
parent::__construct();
$this->_handler = $handler;
}

public function filter($msg)
{
return $this->_handler->filter($msg);
}
}

// 過(guò)濾html
class HtmlFilter extends MessageBoardDecorator
{
public function __construct($handler)
{
parent::__construct($handler);
}

public function filter($msg)
{
return "過(guò)濾掉HTML標(biāo)簽|".parent::filter($msg);; // 過(guò)濾掉HTML標(biāo)簽的處理 這時(shí)只是加個(gè)文字 沒(méi)有進(jìn)行處理
}
}

// 過(guò)濾敏感詞
class SensitiveFilter extends MessageBoardDecorator
{
public function __construct($handler)
{
parent::__construct($handler);
}

public function filter($msg)
{
return "過(guò)濾掉敏感詞|".parent::filter($msg); // 過(guò)濾掉敏感詞的處理 這時(shí)只是加個(gè)文字 沒(méi)有進(jìn)行處理
}
}

$obj = new HtmlFilter(new SensitiveFilter(new MessageBoard()));
echo $obj->filter("一定要學(xué)好裝飾模式!<br/>");

相關(guān)文章

  • PHP入門之常量簡(jiǎn)介和系統(tǒng)常量

    PHP入門之常量簡(jiǎn)介和系統(tǒng)常量

    PHP常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符(名字)。如同其名稱所暗示的,在腳本執(zhí)行期間該值不能改變(除了所謂的魔術(shù)常量,它們其實(shí)不是常量)
    2014-05-05
  • PHP+Ajax 檢測(cè)網(wǎng)絡(luò)是否正常實(shí)例詳解

    PHP+Ajax 檢測(cè)網(wǎng)絡(luò)是否正常實(shí)例詳解

    這篇文章主要介紹了PHP+Ajax 檢測(cè)網(wǎng)絡(luò)是否正常實(shí)例詳解的相關(guān)資料,這里附有實(shí)例代碼,需要的朋友可以參考下
    2016-12-12
  • PHP基于curl模擬post提交json數(shù)據(jù)示例

    PHP基于curl模擬post提交json數(shù)據(jù)示例

    這篇文章主要介紹了PHP基于curl模擬post提交json數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了php使用curl實(shí)現(xiàn)post方式提交json數(shù)據(jù)相關(guān)操作步驟與注意事項(xiàng),代碼簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2018-06-06
  • PHP通過(guò)內(nèi)置函數(shù)memory_get_usage()獲取內(nèi)存使用情況

    PHP通過(guò)內(nèi)置函數(shù)memory_get_usage()獲取內(nèi)存使用情況

    這篇文章主要介紹了PHP通過(guò)內(nèi)置函數(shù)memory_get_usage()獲取內(nèi)存使用情況,需要的朋友可以參考下
    2014-11-11
  • PHP5下$_SERVER變量不再受magic_quotes_gpc保護(hù)的彌補(bǔ)方法

    PHP5下$_SERVER變量不再受magic_quotes_gpc保護(hù)的彌補(bǔ)方法

    在php5的環(huán)境中我們的$_SERVER變量將不再受magic_quotes_gpc的保護(hù),至于程序該如何加強(qiáng)自己的安全性,下面我們總結(jié)了怎么保護(hù)php中的cookie,get,post,files數(shù)據(jù)哦,有需要的朋友可參考一下
    2012-10-10
  • php中$_POST與php://input的區(qū)別實(shí)例分析

    php中$_POST與php://input的區(qū)別實(shí)例分析

    這篇文章主要介紹了php中$_POST與php://input的區(qū)別,實(shí)例分析了$_POST與php://input的功能、使用技巧與用法區(qū)別,需要的朋友可以參考下
    2015-01-01
  • PHP使用DOM和simplexml讀取xml文檔的方法示例

    PHP使用DOM和simplexml讀取xml文檔的方法示例

    這篇文章主要介紹了PHP使用DOM和simplexml讀取xml文檔的方法,結(jié)合實(shí)例形式分析了php使用DOM及simplxml針對(duì)xml文件的創(chuàng)建、載入、讀取等相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • Linux(CentOS)下PHP擴(kuò)展PDO編譯安裝的方法

    Linux(CentOS)下PHP擴(kuò)展PDO編譯安裝的方法

    這篇文章主要介紹了Linux(CentOS)下PHP擴(kuò)展PDO編譯安裝的方法,詳細(xì)說(shuō)明了Linux下安裝PHP的PDO擴(kuò)展所涉及的相關(guān)技巧與詳細(xì)步驟,需要的朋友可以參考下
    2016-04-04
  • php 7新特性之類型申明詳解

    php 7新特性之類型申明詳解

    在PHP7,一個(gè)新的功能,返回類型聲明已被引入。返回類型聲明指定的一個(gè)函數(shù)返回值的類型。下面這篇文章主要給大家介紹了php 7新特性之類型申明的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06
  • for循環(huán)連續(xù)求和、九九乘法表代碼

    for循環(huán)連續(xù)求和、九九乘法表代碼

    上午講了PHP的循環(huán)語(yǔ)句,for、while、do…while,學(xué)過(guò)C或者其他語(yǔ)言的對(duì)這個(gè)應(yīng)該不陌生了,不過(guò)對(duì)于新手來(lái)說(shuō)還是有點(diǎn)吃力
    2012-02-02

最新評(píng)論