复制代码 代码如下:
/**
* Factory Method Pattern
*
* Define an interface for creating objects, let subclasses decide which class to instantiate, and use a class to defer instantiation to its subclasses
*/
/*
class DBFactory
{
public static function create($type)
{
swtich($type)
{
case "Mysql":
return new MysqlDB(); break;
case "Postgre":
return new PostgreDB(); break;
case "Mssql":
return new MssqlDB(); break;
}
}
}
*/
class DBFactory
{
public static function create($type)
{
$class = $type."DB";
return new $class;
}
}
interface DB
{
public function connect();
public function exec();
}
class MysqlDB implements DB
{
public function __construct() {
echo "mysql db
";
}
public function connect() {
}
public function exec() {
}
}
class PostgreDB implements DB
{
public function __construct() {
echo "Postgre db
";
}
public function connect() {
}
public function exec() {
}
}
class MssqlDB implements DB
{
public function __construct() {
echo "mssql db
";
}
public function connect() {
}
public function exec() {
}
}
$oMysql = DBFactory::create("Mysql");
$oPostgre = DBFactory::create("Postgre");
$oMssql = DBFactory::create("Mssql");
http://www.bkjia.com/PHPjc/323794.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/323794.htmlTechArticle复制代码 代码如下: ?php /** * 工厂方法模式 * * 定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使用一个类的实例化延迟到其子...
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn