看来大家都发现了,按照老师的代码,必须通过工厂模式调用实例一个数据库对象,才能将数据库对象注册到注册器中,否则会报错。在注册器的get方法中做个判断即可。关键还是要理解思路。
2016-08-04
最赞回答 / Flc
工厂模式更多的是解决后期拓展(大部分是文件命名修改后)的问题。单例模式更多的是解决内存开销(new 类),同样也是为了代码美观吧上面两个更多的是操作类。原型模式也是为了减少内存开销,也减少重复的代码量(如类里面的一些初始化方法)。
2016-07-26
加载出现问题的简单解决方案:
在Loader文件中修改
static function autoload($class) {
if($class != 'IMooc\IDataBase'){
require BASEDIR.'/'.str_replace('\\','/',$class).'.php';
}else{
require BASEDIR.'/'.str_replace('\\','/','IMooc\\DataBase').'.php';
}
}
在Loader文件中修改
static function autoload($class) {
if($class != 'IMooc\IDataBase'){
require BASEDIR.'/'.str_replace('\\','/',$class).'.php';
}else{
require BASEDIR.'/'.str_replace('\\','/','IMooc\\DataBase').'.php';
}
}
2016-07-25