php设计模式之 简单工厂模式

作为对象的创建模式,用工厂方法代替new操作。

简单工厂模式是属于创建型模式,又叫做静态工厂方法模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

 

<?php
/*
 * 工厂类,里面包含工厂方法,代替new操作,由参数决定创建哪一种对象
 */
class operator{
	public $a,$b,$oper;
	
	public function __construct($a,$b,$oper){
		$this->a = $a;
		$this->b = $b;
		$this->oper = $oper;
	}
	
	public function getresult(){
		switch ($this->oper){
			case 1: $model = new add($this->a,$this->b);break;
			case 2: $model = new jian($this->a,$this->b);break;
			case 3: $model = new cheng($this->a,$this->b);break;
			case 4: $model = new chu($this->a,$this->b);break;
		}
		return $model->result();
	}
}

/*
 * 抽象类,其子类必须实现运算方法
 */
abstract class poper{
	public $a,$b;
	public function __construct($a,$b){
		$this->a =$a;
		$this->b = $b;
	}
	abstract function result();
}

//子类,负责具体业务实现
class add extends poper{
	public function result(){
		return $this->a+$this->b;
	}
}

class jian extends poper{
	public function result(){
		return $this->a-$this->b;
	}
}

class cheng extends poper{
	public function result(){
		return $this->a*$this->b;
	}
}
class chu extends poper{
	public function result(){
		if($this->b ==0){
			return ‘除数不能为0‘;
		}
		return $this->a/$this->b;
	}
}
?>

  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。