设计模式--策略模式

2021-05-02

将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,比如一个网站根据男女用户分别展示不同的内容

<?php

interface Person
{
	public function getInfo();
}

class Man implements Person
{
	public function getInfo()
	{
		return 'show Man message';
	}
}

class Woman implements Person
{
	public function getInfo()
	{
		return 'show Woman message';
	}
}

class Celue
{
	private $_object;
	public function setObject(Person $object)
	{
		$this->_object = $object;
	}

	public function showMessage()
	{
		$this->_object->getInfo();
	}
}

$celue = new Celue();
$object = $_GET['ses'] == 'man' ? new Man() : new Woman();
$celue->setObject($object);
$celue->showMessage();

 

{/if}