不言不语

您现在的位置是: 首页 >  数据库  >  MYSQL

MYSQL

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

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

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

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

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

<?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);


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


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

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


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

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


经典的设计模式:


(后续待更新)

文章评论