php设计模式课程---2、为什么会用到简单工厂设计模式

一、总结

一句话总结:

比如调用数据库的语句,如果调用的数据库名字改了,或者调用的数据库类型改了(比如从Mysql用到了Mysqli),那么要改一百多处(有100处引用的情况),要疯掉的

1、简单工厂设计模式的实质是什么?

通过一个工厂,根据类型参数,返回不同的对象
抽象多个相同分支:本质多把多个相同的分支(比如以什么形式调用数据库(mysql,mysqli))抽象到一个里面去,便于修改,便于管理,这样改只用改一处

就是代码哪里改变,有变化的位置应该位于一处

2、什么情况下用工厂模式?

多处复用:并且有可能发生改变的位置,而且这里还是对象哦,返回的是对象

3、工厂模式,工厂返回的是什么?

对象:是对象

二、为什么会用到简单工厂设计模式

1、相关知识

 

2、代码

 <?php
/** **/ // 简单工厂 class MySQL { } class Sqlite { } class Factory {
public static function getDB($type) {
if($type == 'MySQL') {
return new MySQL();
} else if($type == 'Sqlite') {
return new Sqlite();
} else {
throw new Exception("sorry", 1); }
}
} // 获取DB对象的时
print_r( Factory::getDB('MySQL') ); ?>
 

最新文章

  1. 代码实现SQL Server动态行转列,不用存储过程
  2. Android 常用数据适配器ArrayAdapter
  3. 9款基于CSS3 Transitions实现的鼠标经过图标悬停特效
  4. 使用 Fluent API 配置/映射属性和类型2
  5. Nand flash 的发展和eMMC
  6. ios 第三方qq授权登陆,第一次登陆后,再次登陆,失效
  7. php基础教程笔记2
  8. 关于在jsp页面中使用/struts-tags标签库的迭代器时,从ValueStack获取参数使用EL的问题
  9. ASP.NET Core学习之二 菜鸟踩坑
  10. linux_vi快捷键
  11. JAVA中GridBagLayout布局管理器应用详解
  12. Docke--基础篇
  13. IMU 标定 | 工业界和学术界有什么不同?
  14. 1.编写一个shell脚本
  15. python 与mongodb 交互
  16. 【Java入门提高篇】Day29 Java容器类详解(十一)LinkedHashSet详解
  17. hdu-2089 不要62 基础DP 模板
  18. django学习笔记-1
  19. DFS-深度优先遍历
  20. 一些适合初学者的C/C++语言开发环境(IDE)

热门文章

  1. 出现windows启动服务失败(无法从命令行或调试器启动,需要安装InstallUtil.exe)的解决办法
  2. VMware网络连接 桥接、NAt、host-only模式
  3. Iterator模式----一个一个遍历
  4. 常用PhpStorm 快捷键
  5. 三层登录实例VB.NET版具体解释---理论加实战篇
  6. 如何使CSS--better(系列一)
  7. ios - 使用@try、catch捕获异常:
  8. mysql中的乐观锁和悲观锁
  9. 大数据学习系列(7)-- hadoop集群搭建
  10. zabbix_get 命令介绍