工厂方法模式

factory模式
定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使用一个类的实例化延迟到其子类,实例1是传统模式,实例2是工厂方法。

    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");
参考文章 https://wenku.baidu.com/view/b4c78b4702768e9951e738fb.html

你可能感兴趣的:(工厂方法模式)