PHP设计模式-策略模式

其实就是同一方法的不同实现,类似于重写。
和工厂模式有一样的效果,但是策略模式更注重方法的重写,尤其是一种方法。工厂模式更注重类的不同,直接导致很多方法的不一样。

<?php
abstract class baseAgent { //抽象策略类
	abstract function PrintPage();
}
//用于客户端是IE时调用的类(环境角色)
class ieAgent extends baseAgent {
	function PrintPage() {
		return 'IE';
	}
}
//用于客户端不是IE时调用的类(环境角色)
class otherAgent extends baseAgent {
	function PrintPage() {
		return 'not IE';
	}
}
class Browser { //具体策略角色
	public function call($object) {
		return $object->PrintPage ();
	}
}
$bro = new Browser ();
echo $bro->call ( new ieAgent () );
?>
    原文作者:happy_teemo
    原文地址: https://blog.csdn.net/happy_teemo/article/details/86482342
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞