<?php /*** * @desc 工厂模式 * ***/ interface DB{ /* * @desc 接口类不体现具体实现,只是为了规范一套规则 * **/ public function conn(); public function add(); public function delete(); public function update(); public function select(); public function getLastSql(); } /** * @desc 创建mysqlDb类 * 接口是用来被实现的,并且每一个方法都必须要被实现 * **/ class mysqlDb implements DB{ public function conn(){ echo "恭喜您,mysql数据库连接成功"; } public function add(){ } public function delete(){ } public function update(){ } public function select(){ } public function getLastSql(){ } } /** * @desc 创建sqlServerDb 类 * **/ class sqlServerDb implements DB{ public function conn(){ echo "恭喜您,sqlServer数据库连接成功"; } public function add(){ } public function delete(){ } public function update(){ } public function select(){ } public function getLastSql(){ } } /** * @desc 创建一个数据库工程类,用来生产对象 * **/ class DbFactory{ static $db = null; public static function getDb($type){ switch($type){ case 'mysql': self::$db = new mysqlDb(); break; case 'sqlServer': self::$db = new sqlServerDb(); break; } return self::$db; } } //测试使用mysql来连接数据库测试工程模式是否成功 $factory = new DbFactory(); $db = $factory->getDb('mysql'); $db->conn(); //测试结果输出:恭喜您,mysql数据库连接成功