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

工厂模式定义:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。严格来说简单工厂模式并非属于设计模式,只能是属于一个开发过程中的良好习惯。

<?php
/**
 * 定义工厂接口
 */
interface FactoryInterface{
	//定义一个工具方法
	public function tool();
}
/**
 * 工厂抽象父类继承工厂接口
 */
abstract class Factory implements FactoryInterface{
	abstract public function tool();

	public function tool2(){
		echo "我是公共方法".PHP_EOL;
	}
}

/**
 * 工厂类1
 */
class Factory1 extends Factory{
	public function tool(){
		echo "我是工厂1工具方法".PHP_EOL;
	}
}

/**
 * 工厂类2
 */
class Factory2 extends Factory{
	public function tool(){
		echo "我是工厂2工具方法".PHP_EOL;
	}
}

/**
 * 工厂创建类
 */
class FactoryCreate{
	//工厂对象
	private $_factoryObj;

	//工厂类选择
	public function __construct($flage){
		if($flage == 1){
			$this->_factoryObj = new Factory1;
		}
		if($flage == 2){
			$this->_factoryObj = new Factory2;
		}
	}

	public function getTool(){
		$this->_factoryObj->tool();
	}
}

$obj1 = new FactoryCreate(1);
$obj2 = new FactoryCreate(2);
$obj1 -> getTool();
$obj2 -> getTool();

  

posted @ 2017-02-10 15:45  飞羽惊鸿  阅读(144)  评论(0编辑  收藏  举报