关注我

    我的微信
在线咨询 x
在线咨询
有什么可以帮到你
点击咨询

PHP设计模式汇总(2)—— PHP抽象工厂模式

简介抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。开闭原则, 应该对类的增加开放,对类的修改闭合。定义一个门的接口 门必有两个功能,一个是开,一个是关。

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

开闭原则, 应该对类的增加开放,对类的修改闭合。

定义一个门的接口,门必有两个功能,一个是开,一个是关。

<?php

class MySQL {

}

class Sqlite {

}

class MyPDO {

}

interface Factory {
    public static function getDB();
}

class MySQLFactory implements Factory {
    public static function getDB() {
        return new MySQL();
    }
}

class SqliteFactory implements Factory {
    public static function getDB() {
        return new Sqlite();
    }
}

class MyPDOFactory implements Factory {
    public static function getDB() {
        return new MyPDO();
    }
}

// 配置文件,假设这是项目框架中的配置信息
$fact = 'MyPDOFactory';


$db = MyPDOFactory::getDB();
print_r($db);


普通工厂模式和抽象工厂模式对比


普通模式:用于创建复杂对象。(单点食物)

抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。(买套餐)


普通工厂创建一般只有一个方法,创建一种产品。

抽象工厂创建一般有多个方法,创建一系列产品。


经典的设计模式:

PHP设计模式汇总(1)—— PHP简单工厂模式

PHP设计模式汇总(2)—— PHP抽象工厂模式

PHP设计模式汇总(3)—— PHP单例模式

PHP设计模式汇总(4)—— PHP观察者模式

PHP设计模式汇总(5)—— PHP责任链模式

PHP设计模式汇总(6)—— PHP装饰器模式

(后续待更新)