设计模式:二
2016-03-03 10:22
316 查看
php面向对象设计模式中,工厂模式,从字面中就能够以理解为,工厂模式就是在不改变原来代码的结构的基础上,依据需求的添加类定义去完毕
定义了两个接口类, 事实上定义接口类的主要作用, 能够起到约束作用,更规范 .
由于php是类型自己主动转换的。
实现上使用接口能够约束类的定义。从而实现一致的訪问.
从上述代码能够看出, 在不改变原来代码结构的基础上, 能够加入多个数据库连接
比方要添加一个oracle数据库连接,仅仅须要再添加在添加类的基础上就完毕
<? php header("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成功
相关文章推荐
- IQ 15.X 从IQ_SYSTEM_MAIN DBSPACE 上把数据库对像迁移到用户 DBSPACE 上的办法[转]
- 设计模式:适配器模式和代理模式的区别
- MyBatis Like 拼接
- ganglia安装
- app移动接口开发需要注意什么
- SpringMVC+Spring Security+mave+mybatis整合一
- 学习linux决心书
- iOS ARC下内存泄露的几种情况和解决办法
- 为什么要需求分析
- 欢迎使用CSDN-markdown编辑器
- 蓝桥杯往届试题——蚂蚁感冒(思维题目)
- Missing Number
- python之字符串详解2
- Sitemesh3的使用及配置
- Android ACodec学习
- 初接触jquery easyui的一点认知
- kafka监控Kafka Offset Monitor
- ios要求检测飞行模式
- Reverse Integer
- 互动运营平台