PHP中的工厂设计模式,这是正确的吗?

时间:2016-01-11 12:59:28

标签: php oop design-patterns

我正在阅读PHP中的设计模式,并且我对我为实现工厂设计模式而编写的代码持怀疑态度。

此代码是否实现 REAL 工厂设计?

而且,我需要在这里使用任何界面吗?

代码是:

class DBFactory 
{
   const MYSQL      =   1;
   const ORACLE     =   2;
   const SQLITE     =   3;

   private $objectTxt = null;

   function __construct($type) 
   {
       if ($type == self::MYSQL) {
           $this->objectTxt = 'MySQL Object'; 
           return ; //MySQL Object
       }

       else if ($type == self::ORACLE) 
       {
           $this->objectTxt = 'Oracle Object';
           return ; //Oracle Object
       }

       else if ($type == self::SQLITE)
       {
           $this->objectTxt = 'SQlite Object';
           return 'SQLite Object'; //SQLite Object           
       }
   }

   function __toString() {
        return $this->objectTxt;   
   }
}

1 个答案:

答案 0 :(得分:1)

是的,这样可以实现Factory Design Pattern,但是更好来使用静态方法,如下所示:

public static function getInstance($type) { ... }

获取实例:

$db = DBFactory::getInstance(DBFactory::MYSQL);