教材上一个简单的工厂模式例子,其中红色字体的两行不明白。
直接写成 return new $type();不就行了?为什么要写成 $classname=$type; return new $classname();                                                                           
-------------------------------------------------------------------------------------------------------------------------------首先在根目录下创建MySQL.php文件,示例代码如下:
<?php
    class MySQL{
                              //操作MySQL的驱动类
}
?>然后在根目录下创建SQLite.php文件,示例代码如下:
<?php
    class SQLite{
                              //操作SQLite的驱动类
}
?>最后定义一个工厂方法来获取各驱动对象,具体示例代码如下:
<?php
     header('Content-Type:text/html;charset=utf-8');    class Db{
    //工厂方法
   public static function factory($type) {
if (include_once $type . '.php')  {
$classname=$type;
return new $classname();
   //这两句直接写成一句 return new $type();不就行了? 
}else {
          echo "出错了!";
          }
}
}
//获取MySQL驱动对象
$mysql=Db::factory('MySQL');
//获取SQLite驱动对象
$sqlite=Db::factory('SQLite');