国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP設計模式之命令模式

scq000 / 3033人閱讀

摘要:概念將來自客戶端的請求傳入一個對象,從而使你可用不同的請求對客戶進行參數化。用于行為請求者與行為實現者解耦,可實現二者之間的松耦合,以便適應變化。角色命令在一個方法調用之上定義一個抽象具體的命令一個操作的實現調用者引用實例作為它可用的操作。

概念

將來自客戶端的請求傳入一個對象,從而使你可用不同的請求對客戶進行參數化。用于“行為請求者”與“行為實現者”解耦,可實現二者之間的松耦合,以便適應變化。

角色

Command(命令):在一個方法調用之上定義一個抽象;

ConcreteCommand(具體的命令):一個操作的實現;

Invoker(調用者):引用Command實例作為它可用的操作。

代碼

代碼如下:

 0;
    }
}

/**
 * Class ConcreteCommandTwo 具體命令2
 */
class ConcreteCommandTwo implements Command
{
    /**
     * 實現驗證方法
     *
     * @param $value
     *
     * @return bool
     */
    public function isValid($value)
    {
        // 能被2整除的數字
        return $value % 2 == 0;
    }
}

/**
 * Class Invoker 調用者
 */
class Invoker
{
    protected $_rule;

    /**
     * 構造方法
     * 接收具體命令對象
     * Invoker constructor.
     *
     * @param Command $rule
     */
    public function __construct (Command $rule)
    {
        $this->_rule = $rule;
    }

    public function process(array $numbers)
    {
        foreach ($numbers as $n) {
            if ($this->_rule->IsValid($n)) {
                echo $n, "
";
            }
        }
    }
}

/**
 * Class Client 客戶端
 */
class Client {
    /**
     * 測試
     */
    public static function test()
    {
        $invoker = new Invoker(new ConcreteCommand());
        $invoker->process(array(-1,-4,-8,1, 10, 15, 20, 36, 48, 59,111));
        echo "
"; $invoker = new Invoker(new ConcreteCommandTwo()); $invoker->process(array(-1,-4,-8,1, 10, 15, 20, 36, 48, 59,111)); } } // 執行測試 Client::test();

運行結果:

1 10 15 20 36 48 59 111 
-4 -8 10 20 36 48

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22070.html

相關文章

  • php設計模式命令模式

    摘要:命令模式概念將請求封裝成對象,以便使用不同的請求隊列或者日志來參數化其他對象。命令模式也支持可撤銷的操作。從而實現行為請求者與行為實現者的松耦合。 命令模式概念 將請求封裝成對象,以便使用不同的請求、隊列或者日志來參數化其他對象。命令模式也支持可撤銷的操作。從而實現行為請求者與行為實現者的松耦合。 命令模式成員 抽象命令(Command):定義命令的接口,聲明執行的方法(execute...

    niuxiaowei111 評論0 收藏0
  • php 設計模式工廠模式、單例模式、注冊樹模式

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

    liangzai_cool 評論0 收藏0
  • PHP回顧IO

    摘要:命令行時返回值為,標準輸入輸出均指向終端可用進程號查看。會在腳本執行完畢后關閉三個流,無需用戶手動關閉。與遠程網址交互是一個請求和響應的過程,其中細節可參考本人之前的文章回顧之請求和回顧之響應,也可參考協議的權威文檔。 轉載請注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎 web請求 cookie web響應 ses...

    happen 評論0 收藏0
  • php設計模式

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

    Dionysus_go 評論0 收藏0
  • php設計模式

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

    vspiders 評論0 收藏0

發表評論

0條評論

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