我正在阅读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;
}
}
答案 0 :(得分:1)
是的,这样可以实现Factory Design Pattern
,但是更好来使用静态方法,如下所示:
public static function getInstance($type) { ... }
获取实例:
$db = DBFactory::getInstance(DBFactory::MYSQL);