<?php/** * 工厂模式 * 提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤。 * * 工厂类用于创建不同类的实例,并将其返回。 *//** * 服务端开始 */interface DB{ function conn();}interface Factory{ function createDB();}//class MysqlDB implements DB{ public function conn() { echo '连接上Mysql...'; }}//class SqliteDB implements DB{ public function conn() { echo '连接上Sqlite...'; }}//class MysqlFactory implements Factory{ public function createDB() { return new MysqlDB(); }}//class SqliteFactory implements Factory{ public function createDB() { return new SqliteDB(); }}/** * 客户端开始 *///连接Mysql$fact = new MysqlFactory();$db = $fact->createDB();$db->conn();echo '<br/>';//连接Sqlite$fact = new SqliteFactory();$db = $fact->createDB();$db->conn();echo '<br/>';/** * 扩展:添加Oracle连接 */class OracleDB implements Db{ function conn() { echo '连接上Oracle....'; }}class OracleFactory implements Factory{ public function createDB() { return new OracleDB(); }}//连接Oracle$fact = new OracleFactory();$db = $fact->createDB();$db->conn();echo '<br/>';