设计模式:二
来源:互联网 发布:录制绘画过程软件 编辑:程序博客网 时间:2024/05/29 23:44
php面向对象设计模式中,工厂模式,从字面中就可以以理解为,工厂模式就是在不改变原来代码的结构的基础上,根据需求的增加类定义去完成
<?phpheader("Content-Type:text/html; charset=utf8");/** * php设计模式 * 二:工厂模式 * */// 定义接口DB类interface DB{ function conn();}class dbmysql implements DB{ public function conn(){ echo 'mysql连接成功<br />'; }}class dbSqlServer implements Db{ public function conn(){ echo 'Sqlserver连接成功'; }}// 定义一个工厂接口interface Factory{ function createDB();}//定义创建数据接口class GetMysqlFactory implements Factory{ public function createDB(){ return new dbmysql(); }}class GetSqlServer implements Factory{ public function createDB(){ return new dbSqlServer(); }}$facMysql = new GetMysqlFactory(); // 获得创建mysql的工厂类$mysql = $facMysql->createDB(); // 通过mysql工厂对象创建一个mysql对象$mysql->conn(); //mysql连接成功$facMysql = new GetSqlServer(); // 获得sqlServer工厂类$mysql = $facMysql->createDB();// 通过Sqlserver工厂对象创建一个sqlServer对象$mysql->conn(); //sqlServer连接成功
定义了两个接口类, 其实定义接口类的主要作用, 可以起到约束作用,更规范 .
因为php是类型自动转换的。实现上使用接口可以约束类的定义,从而实现一致的访问.
从上述代码可以看出, 在不改变原来代码结构的基础上, 可以添加多个数据库连接
比如要增加一个oracle数据库连接,只需要再增加在增加类的基础上就完成
class dbOracle implements DB{ function conn(){ echo '<hr />连接oracle成功'; }}class getOracle implements Factory{ public function createDB(){ return new dbOracle; }}$facOracle = new getOracle();$facOracle = $facOracle->createDB();$facOracle->conn(); // 连接Orache成功
1 1
- 设计模式汇总(二)
- 设计模式二:bridge
- 系统设计模式二
- 设计模式探索二
- 设计模式(二)
- 常用设计模式二
- 设计模式笔录(二)
- 设计模式 二
- 设计模式二
- 设计模式(二)
- 设计模式<二>
- 设计模式(二)
- 设计模式(二)
- PHP设计模式(二)
- 设计模式:二
- 设计模式(二)
- 设计模式二
- 设计模式(二)
- Spring的试水!!!感觉还行
- RPC远程过程调用
- 解决Android SDK下载和更新失败的方法详解
- Ubuntu的挂起和休眠
- Spring简介~~~我是Spring的搬运工
- 设计模式:二
- jQuery判断checkbox是否选中的3种方法
- Vim + Cscope打造Linux下的Source Insight
- ListView中为解决CheckBox重用而引入的新问题
- linux ubuntu 虚拟机中配置samba的实现文件共享的方法
- Linux/Centos:如何安装GCC(C和C++编译器)
- Android中的Menu介绍
- Ubuntu14.04 安装git
- Struts2的实际操作!简直不能太爽了