策略模式是針對一組演算法,將每一種演算法都封裝到具有共同介面的獨立的類中,從而是它們可以相互替換。策略模式的最大特點是使得演算法可以在不影響客戶端的情況下發生變化,從而改變不同的功能。 ...
策略模式是針對一組演算法,將每一種演算法都封裝到具有共同介面的獨立的類中,從而是它們可以相互替換。策略模式的最大特點是使得演算法可以在不影響客戶端的情況下發生變化,從而改變不同的功能。
<?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