工厂模式

使用工厂模式统一与工厂相关类的创建与操作,使用传入的参数进行区分。

<?php
/**
 * 工厂模式
 * 通常我们将工厂模式用于初始化相同抽象类或接口的具体实现。通过给工厂传递不同的参数,来生产不同的实现
 * 工厂模式最大的价值在于它可以将多个对象设置封装成单一/简单的方法调用。
 * :封装了与‘工厂’相关的类的new操作
 * version :01
 **/
	class Log_Factory{
		public function getLog($type='file',array $option){
			$type=strtolower($type);
			$class='Log_'.ucfirst($type);
			require_once str_replace('_',DIRECTORY_SEPARATOR,$class);
			//工厂模式实质
			$log=new $class($option);
			switch($type){
				case 'file':
					$log->setPath($option['location']);
					break;
				case 'mysql':
					$log->setUser($option['username']);
					$log->setPassword($option['password']);
					$log->setDBName($option['location']);
					break;
				case 'sqlite':
					$log->setDBPath($option['location']);
					break;
			}
			return $log;
		}
	}

?>


你可能感兴趣的:(工厂模式)