php-策略模式
???? 策略模式跟工廠模式有個共同點就是擴展性好,工廠模式就不多說了(參考前面的工廠模式),策略模式主要解決的問題是:有多種策略可以選擇,根據(jù)不同的情況選擇不同的策略,可以隨意的增加策略,而不用去修改使用策略的中間模塊。比如說,工資計算,由于公司里有各個層次的員工計算工資的公式是不一樣的,那么財務(wù)部會根據(jù)不同的員工來選擇不同的計算公式。策略模式就是用來解決這類的問題,下面看看例子:
???? <?php
abstract class SalaryAbs
{
?public function calculate(){}
}
class HighSalary extends SalaryAbs
{
?public function calculate()
?{
??echo "HighSalary!<BR>";
?}
}
class LowSalary extends SalaryAbs
{
?public function calculate()
?{
??echo "LowSalary!<BR>";
?}
}
class Accountant
{
?public function cal($salary)
?{
??$salary->calculate();
?}
}
$accountant = new Accountant();
$accountant->cal(new HighSalary());
$accountant->cal(new LowSalary);
?>
這樣財務(wù)部的同事就可以通過選擇不同的員工計算方式來結(jié)算員工的工資了。策略模式在很多情況下也會用到,特別是在種類繁多的選擇,還要根據(jù)不同選擇得到不同結(jié)果。大概的策略模式就是這樣的了。
轉(zhuǎn)載于:https://www.cnblogs.com/jack_zjz/archive/2011/09/30/2196469.html
總結(jié)
- 上一篇: SQL Server 下的 获取当月最后
- 下一篇: NS2网络模拟(3)-吞吐率