php设计模式课程---2、为什么会用到简单工厂设计模式
一、总结
一句话总结:
比如调用数据库的语句,如果调用的数据库名字改了,或者调用的数据库类型改了(比如从Mysql用到了Mysqli),那么要改一百多处(有100处引用的情况),要疯掉的
1、简单工厂设计模式的实质是什么?
通过一个工厂,根据类型参数,返回不同的对象
抽象多个相同分支:本质多把多个相同的分支(比如以什么形式调用数据库(mysql,mysqli))抽象到一个里面去,便于修改,便于管理,这样改只用改一处
就是代码哪里改变,有变化的位置应该位于一处
2、什么情况下用工厂模式?
多处复用:并且有可能发生改变的位置,而且这里还是对象哦,返回的是对象
3、工厂模式,工厂返回的是什么?
对象:是对象
二、为什么会用到简单工厂设计模式
1、相关知识
2、代码
1 <?php 2 /** 5 **/ 6 7 // 简单工厂 8 9 class MySQL { 10 11 } 12 13 class Sqlite { 14 15 } 16 17 18 class Factory { 19 public static function getDB($type) { 20 if($type == 'MySQL') { 21 return new MySQL(); 22 } else if($type == 'Sqlite') { 23 return new Sqlite(); 24 } else { 25 throw new Exception("sorry", 1); 26 27 } 28 } 29 } 30 31 32 33 // 获取DB对象的时 34 print_r( Factory::getDB('MySQL') ); 35 36 37 38 39 40 41 42 ?>