【php設計模式】策略模式

  策略模式是針對一組算法,將每一種算法都封裝到具備共同接口的獨立的類中,從而是它們能夠相互替換。策略模式的最大特色是使得算法能夠在不影響客戶端的狀況下發生變化,從而改變不一樣的功能。php

<?php
interface Stratege{
    public function doOperation($int1,$int2);
}

class OperationAdd implements Stratege{
    public function doOperation($int1,$int2){
        return $int1 + $int2;
    }
}

class OperationSub implements Stratege{
    public function doOperation($int1,$int2){
        return $int1 - $int2;
    }
}

class Context{
    public $stratege;
    public function __construct(Stratege $stra){
        $this->stratege = $stra;
    }
    public function executeStrategy($int1,$int2){
        echo $this->stratege->doOperation($int1,$int2)."\n";
    }
}


$add = new OperationAdd();
$context_add = new Context($add);
$context_add->executeStrategy(5,3); //輸出8

$sub = new OperationSub();
$context_sub = new Context($sub);
$context_sub->executeStrategy(5,3); //輸出2
相關文章
相關標籤/搜索