接下来是工厂模式。。。
<?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"); ?>
本文出自 “王尼美的成人之路” 博客,转载请与作者联系!
原文地址:http://8335914.blog.51cto.com/8325914/1591074