一、工厂设计模式
index.php
$db = IMooc\Factory::createDatabase();
使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改即可。
IMooc/Factory.php
二、单例设计模式
保证在整个脚本运行期间,只有一个对象的实例,比如数据库操纵对象
Database.php
Factory.php
index.php
output同一个对象;
object(IMooc\Database)#1 (0) { }
object(IMooc\Database)#1 (0) { }
object(IMooc\Database)#1 (0) { }
三、注册树模式
将对象注册到全局的注册树上,一般是在环境初始化时,将对象注册,在实现业务逻辑时,直接get获取即可;
注册树类Register.php
在工厂类里进行注册,将$db注册到$register注册树上
在index.php中调用createDatabase进行注册
output:object(IMooc\Database)#1 (0) { }