简单工厂模式之php实现 c#简单工厂模式 工厂模式 java java简单工厂模式实例

WBOY
发布: 2016-07-29 08:54:59
原创
1342 人浏览过

登录后复制
简单工厂模式又叫静态工厂方法模式,主要作用是通过一个简单工厂类来实例化(创建)各个类的对象,而不需要通过new来实例化对象。优点在于,工厂类中包含了一定的逻辑判断,会根据客户端的选择条件动态实例化相关的类。缺点在于,当需要增加新的功能类时,需要去修改工厂类。

以下内容以一个简单的计算器程序作为案例分析。第一步,定义Operation,是一个父类,有两个属性,表示用于计算的两个参数。

<?php /*
* 计算类
*/
class Operation{
	private $numA=0;
	private $numB=0;
	public function setNumA($numA)
	{
		$this->numA=$numA;
	}

	public function getNumA()
	{
		return $this->numA;
	}

	public function setNumB($numB)
	{
		$this->numB=$numB;
	}

	public function getNumB()
	{
		return $this->numB;
	}
}
?>
登录后复制

第二步,定义一个接口,接口中声明实现运算的方法

<?php /*
*工厂接口
*/
interface InterOperate{
	function getResult();
}
?>
登录后复制

第三步,是一个加法运算类(省略减法类、乘法类、触发类等)

<?php /**
* 加法运算类
*/
include_once "IOperate.php";
include_once &#39;Operation.php&#39;;
class OperationAdd extends Operation implements InterOperate
{
	function getResult()
	{
		$result=$this->getNumA()+$this->getNumB();
		return $result;
	}
}

?>
登录后复制

最后,定义简单工厂类,用于创建各种类的对象实例。通常简单工厂类返回的对象都有一个公共父类。在这个例子中的公共父类就是Operation类,加法类、减法类都是Operation的子类。

<?php include_once "OperationAdd.php";
include_once "OperationMinus.php";
class SimpleFactory {
	static function createAdd()
	{
		return new OperationAdd;
	}

	static function createMinus()
	{
		return new OperationMinus;
	}
}

?>
登录后复制

客户端代码如下:

<?php /*
*	客户端代码
*/
include_once "OperationAdd.php";
include_once &#39;Operation.php&#39;;
include_once &#39;SimpleFactory.php&#39;;

$op=SimpleFactory::createAdd();
$op->setNumA(2);
$op->setNumB(4);
echo $op->getResult();

$om=SimpleFactory::createMinus();
$om->setNumA(45);
$om->setNumB(34);
echo "<br>";
echo $om->getResult();
?>
登录后复制

以上就介绍了简单工厂模式之php实现,包括了简单工厂模式方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!