最新文章
- MySQL中, group by 和 order by 一起使用会有排序问题,group by 和 order by 同时使用时要注意的地方
- Vue学习笔记(10) ——Vue组件中的data和methods
- Vue学习笔记(9) ——Vue组件创建的几种方式
- Vue学习笔记(8) ——Vue实例的生命周期
- Vue学习笔记(7) —— 过滤器 filter的基本使用
- Vue学习笔记(6) ——v-if指令和v-show指令
- Vue学习笔记(5) —— v-for指令和key属性
- Vue学习笔记(5) —— Vue中样式-class样式和style样式
- Vue学习笔记(4) —— v-model指令,双向数据绑定
- Vue学习笔记(3) —— Vue事件修饰符
关注我

在线咨询
x
有什么可以帮到你

点击咨询
PHP设计模式汇总(2)—— PHP抽象工厂模式
- 分类:PHP技术
- 时间:2020-06-14
- 共1373人围观
简介抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。开闭原则, 应该对类的增加开放,对类的修改闭合。定义一个门的接口 门必有两个功能,一个是开,一个是关。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
开闭原则, 应该对类的增加开放,对类的修改闭合。
定义一个门的接口,门必有两个功能,一个是开,一个是关。
<?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);
普通工厂模式和抽象工厂模式对比
普通模式:用于创建复杂对象。(单点食物)
抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。(买套餐)
普通工厂创建一般只有一个方法,创建一种产品。
抽象工厂创建一般有多个方法,创建一系列产品。
经典的设计模式:
(后续待更新)