首页 > 代码库 > 设计模式之-------工厂模式

设计模式之-------工厂模式

接下来是工厂模式。。。

<?php
/****
**工厂设计模式的应用:数据库要么产生一个mysql的链接,要么产生一个sqlserver,可以定义一个数据库抽象类,专门****负责产生不同的对象
********/
/***
*在thinkphp框架中也有对应的实现:
Db.class.php就是一个工厂类(也可以叫做数据库中间层,之所以叫做中间层,是因为可以操作mysql、oracle等各数据库。而这个类就是中间层作用,屏蔽掉具体的实现。让程序员可以不改动原来的查询代码。中间层来对接mysql、oracle等数据库。
**/
/**
****
还有做支付接口的时候,未来可能对应不同的支付网关:支付宝、财付通、网银在线等。方便未来扩展,设计成工厂模式。定一个专门生产网关接口的工厂,抽象出来,做成接口形式,让所有的子类都要实现它的接口。以后加一个支付方式,要使用哪一种支付方式,改变一下参数即可
**/
/**
*分为很多种角色的用户。比如册用户,匿名用户、管理员用户等。完全使用可以使用工厂的思想来实现,代码也容易维*护,为每种角色可以生成操作的类。
*/
class DbFactory
{
	function static factory($db_class_name){
			$db_class_name = strtolower($db_class_name);
			if (include_once ‘Drivers/‘ . $db_class_name . ‘.php‘) {     
				$classname = ‘Driver_‘ . $db_class_name;
				return new $db_class_name;
			} else {
				throw new Exception (‘对应的数据库类没找到‘);
			} 
	}
}
DbFactory::factory("mysql");
DbFactory::factory("oracle");
?>


本文出自 “王尼美的成人之路” 博客,转载请与作者联系!

设计模式之-------工厂模式