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

資訊專欄INFORMATION COLUMN

php設(shè)計(jì)模式之命令模式

niuxiaowei111 / 2085人閱讀

摘要:命令模式概念將請(qǐng)求封裝成對(duì)象,以便使用不同的請(qǐng)求隊(duì)列或者日志來參數(shù)化其他對(duì)象。命令模式也支持可撤銷的操作。從而實(shí)現(xiàn)行為請(qǐng)求者與行為實(shí)現(xiàn)者的松耦合。

命令模式概念

將請(qǐng)求封裝成對(duì)象,以便使用不同的請(qǐng)求、隊(duì)列或者日志來參數(shù)化其他對(duì)象。命令模式也支持可撤銷的操作。
從而實(shí)現(xiàn)“行為請(qǐng)求者”與“行為實(shí)現(xiàn)者”的松耦合。

命令模式成員

抽象命令(Command):定義命令的接口,聲明執(zhí)行的方法(execute、undo)
具體命令(ConcreteCommand):命令接口實(shí)現(xiàn)對(duì)象,通常會(huì)持有接收者,并調(diào)用接收者的功能來完成命令要執(zhí)行的操作
接收者(Receiver):執(zhí)行命令的對(duì)象
請(qǐng)求者(Invoker):調(diào)用命令對(duì)象執(zhí)行請(qǐng)求

類圖

實(shí)例
light = $light;
    }

    public function execute()
    {
        $this->light->on();
    }

    public function undo()
    {
        $this->light->off();
    }
}

/**
 * 具體命令(ConcreteCommand)
 * Class LightOff
 */
class LightOff implements Command{
    private $light;

    public function __construct(Light $light)
    {
        $this->light = $light;
    }

    public function execute()
    {
        $this->light->off();
    }

    public function undo()
    {
        $this->light->on();
    }
}

/**
 * 請(qǐng)求者(Invoker)
 * Class Control
 */
class Control{

    protected $object;

    public function __construct($object)
    {
        $this->object = $object;
    }

    public function exec(){
        $this->object->execute();
    }

    public function undo(){
        $this->object->undo();
    }

}

$light = new Light();
$light_on = new LightOn($light);
$control = new Control($light_on);
$control->exec();
echo "
"; $control->undo();
設(shè)計(jì)原則

1.封裝變化
2.多用組合,少用繼承
3.針對(duì)接口編程,不針對(duì)實(shí)現(xiàn)編程
4.為交互對(duì)象之間松耦合設(shè)計(jì)而努力
5.類應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉
6.依賴抽象、不要依賴具體類

總結(jié)

1.命令模式將發(fā)出請(qǐng)求的對(duì)象和執(zhí)行請(qǐng)求的對(duì)象解耦
2.在被解耦的兩者之間通過命令對(duì)象進(jìn)行溝通。命令對(duì)象封裝了接收者和一個(gè)或一組動(dòng)作
3.調(diào)用者通過調(diào)用命令對(duì)象的execute方法發(fā)出請(qǐng)求,這樣使得接受者的動(dòng)作被調(diào)用
4.調(diào)用者可以接受命令當(dāng)做參數(shù),甚至在運(yùn)行時(shí)動(dòng)態(tài)的進(jìn)行
5.命令可以支持撤銷,做法實(shí)現(xiàn)一個(gè)undo的方法來回到execute被執(zhí)行前的狀態(tài)
6.命令也可以用來實(shí)現(xiàn)日志、事物系統(tǒng)、隊(duì)列

參考文獻(xiàn)《head first設(shè)計(jì)模式》

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

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

相關(guān)文章

  • php 設(shè)計(jì)模式工廠模式、單例模式、注冊(cè)樹模式

    摘要:的設(shè)計(jì)模式有很多種,本文取最簡單的三種模式工廠模式單例模式和注冊(cè)樹模式進(jìn)行簡單的講解。文件創(chuàng)建完后,咱們回到單元測(cè)試文件文件再執(zhí)行一下單元測(cè)試命令發(fā)現(xiàn),也能返回成功,這樣的話我們就能很方便的修改任何驅(qū)動(dòng)了。 php 設(shè)計(jì)模式之工廠模式、單例模式、注冊(cè)樹模式 在軟件工程中,創(chuàng)建型設(shè)計(jì)模式承擔(dān)著對(duì)象創(chuàng)建的職責(zé),嘗試創(chuàng)建適合程序上下文的對(duì)象,對(duì)象創(chuàng)建設(shè)計(jì)模式的產(chǎn)生是由于軟件工程設(shè)計(jì)的問題,具...

    liangzai_cool 評(píng)論0 收藏0
  • PHP設(shè)計(jì)模式命令模式

    摘要:概念將來自客戶端的請(qǐng)求傳入一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化。用于行為請(qǐng)求者與行為實(shí)現(xiàn)者解耦,可實(shí)現(xiàn)二者之間的松耦合,以便適應(yīng)變化。角色命令在一個(gè)方法調(diào)用之上定義一個(gè)抽象具體的命令一個(gè)操作的實(shí)現(xiàn)調(diào)用者引用實(shí)例作為它可用的操作。 概念 將來自客戶端的請(qǐng)求傳入一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化。用于行為請(qǐng)求者與行為實(shí)現(xiàn)者解耦,可實(shí)現(xiàn)二者之間的松耦合,以便適應(yīng)變化...

    scq000 評(píng)論0 收藏0
  • PHP回顧IO

    摘要:命令行時(shí)返回值為,標(biāo)準(zhǔn)輸入輸出均指向終端可用進(jìn)程號(hào)查看。會(huì)在腳本執(zhí)行完畢后關(guān)閉三個(gè)流,無需用戶手動(dòng)關(guān)閉。與遠(yuǎn)程網(wǎng)址交互是一個(gè)請(qǐng)求和響應(yīng)的過程,其中細(xì)節(jié)可參考本人之前的文章回顧之請(qǐng)求和回顧之響應(yīng),也可參考協(xié)議的權(quán)威文檔。 轉(zhuǎn)載請(qǐng)注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請(qǐng)求 cookie web響應(yīng) ses...

    happen 評(píng)論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來做一個(gè)萬能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...

    Dionysus_go 評(píng)論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來做一個(gè)萬能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...

    vspiders 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<