设计模式之工厂模式 抽象工厂

多个类具有相同的属性和方法

1.首先声明类

class Mysql
{

}

class Sqlite
{

}

class MyPdo
{

}

2.建立一个工厂类接口,工厂类中可以声明属性和方法

interface Factory {

    public static function getDB();

}

3.然后声明抽象工厂类 实现工厂类接口中的静态方法

class MysqlFactory implements Factory
{
    public static  function getDB() {
        return new Mysql();
    }
}

class MyPdoFactory implements Factory
{
    public static function getDB()
    {
        // TODO: Implement getDB() method.
        return new MyPdo();
    }
}

class MysqlliteFactory implements Factory
{
    public static function getDB()
    {
        // TODO: Implement getDB() method.
        return new Sqlite();
    }
}

4、最后调用工厂类中的静态方法

$factory = 'MysqlFactory';
$db = $factory::getDB();
print_r($db);