php设计模式之策略模式
一,策略模式,是行为设计模式的一种,通过定义不同的策略算法来解决同一个问题。策略模式可以让这些算法在运行时相互替换,而不需要改变客户端的代码。
1,上下文环境类(context):持有一个策略算法的引用,负责在运行时切换算法。
2,抽象策略类(Strategy):定义具体策略类需要实现的方法。
3,具体策略类(Concrete Strategy):实现抽象策略类定义的抽象方法,并实现具体的算法逻辑供环境类调用。
二,例子
// 抽象策略类
interface Member
{
public function discount($price);
}
// 具体策略类
class PrimaryMember implements Member
{
public function discount($price)
{
echo '普通会员价格:' . $price * 0.9;
}
}
class SeniorMember implements Member
{
public function discount($price)
{
echo '高级会员价格:' . $price * 0.8;
}
}
// 环境类
class Product
{
private $member;
function __construct(Member $member)
{
$this->member = $member;
}
public function getPrice($price)
{
$this->member->discount($price);
}
}
// 客户端调用
$obj = new SeniorMember();
$productObj = new Product($obj);
$productObj->getPrice(100);// 高级会员价格:80
上一篇: 【前端|Javasc
下一篇: 【黑马程序员前端】J