php 工廠模式

<?php


/*
法一:
$arr = array('+' => 'add','-' => 'plus','*' => 'mul');
function  add($a,$b)
{
	return $a+$b;
}
function plus($a,$b)
{
	return $a-$b;
}
function mul($a,$b)
{
	return $a*$b;
}

echo $arr['+'](2,3);
echo $arr['-'](2,3);
echo $arr['*'](2,3);*/


abstract class operate
{
	abstract public function getvalue($a,$b);
}

class add extends operate
{
	public function getvalue($a,$b)
	{
		return $a+$b;
	}
}
class jian extends operate
{
	public function getvalue($a,$b)
	{
		return $a-$b;
	}
}
class chen extends operate
{
	public function getvalue($a,$b)
	{
		return $a*$b;
	}
}
class chu extends operate
{
	public function getvalue($a,$b)
	{
		return $a/$b;
	}
}

class factory
{
	public static function oper($str)
	{
		switch($str)
		{
			case '+':
			return new add();
			break;

			case '-':
			return new jian();
			break;

			case '*':
			return new chen();
			break;

			case '/':
			return new chu();
			break;
		}
	}
}

echo factory::oper('-')->getvalue(10,8);
相關文章
相關標籤/搜索