设计模式演示
Go to file
cloud f698221882 门面模式 2022-04-16 01:02:39 +08:00
Tests 0.2 2022-04-15 04:37:19 +08:00
bin 0.2 2022-04-15 04:39:55 +08:00
demo 门面模式 2022-04-16 01:02:39 +08:00
.gitignore 0.2 2022-04-15 04:38:50 +08:00
.phpunit.result.cache 0.2 2022-04-15 04:37:19 +08:00
README.md 0.2 2022-04-15 04:37:19 +08:00
composer.json 0.2 2022-04-15 04:37:19 +08:00
composer.lock 0.2 2022-04-15 04:37:19 +08:00
index.php 0.2 2022-04-15 04:37:19 +08:00
info.php 0.1 2022-04-13 06:00:06 +08:00
psalm.xml 0.2 2022-04-15 04:37:19 +08:00

README.md

设计模式演示

PHP 示例代码 https://github.com/DesignPatternsPHP/DesignPatternsPHP

PHP PSR 标准规范:https://learnku.com/docs/psr

PHP 设计模式全集:https://learnku.com/docs/php-design-patterns/2018

PHP 设计模式全集:https://laravelacademy.org/books/php-design-pattern

PHPunit 文档:https://phpunit.readthedocs.io/zh_CN/latest/assertions.html

环境PHP8.1.4

学习顺序

PHP 学习顺序 https://www.cnblogs.com/guola/archive/2013/01/02/2841997.html

学习顺序 设计模式 常用程度 适用层次 引入时机 结构复杂度 变化 实现 体现的原则
1 工厂方法模式Factory Method 很常用 代码级 编码时 简单 子类的实例化 对象的创建工作延迟到子类 开闭原则
2 单例模式Singleton 很常用 代码级、应用级 设计时、编码时 简单 唯一实例 封装对象产生的个数
3 门面模式Facade 很常用 应用级、构架级 设计时、编码时 简单 子系统的高层接口 封装子系统 开闭原则
4 模板方法模式Template Method 很常用 代码级 编码时、重构时 简单 算法子步骤的变化 封装算法结构 依赖倒置原则
5 抽象工厂模式Abstract Factory 比较常用 应用级 设计时 比较复杂 产品家族的扩展 封装产品族系列内容的创建 开闭原则
6 组合模式Composite 比较常用 代码级 编码时、重构时 比较复杂 复杂对象接口的统一 统一复杂对象的接口 里氏代换原则
7 代理模式Proxy 比较常用 应用级、构架级 设计时、编码时 简单 对象访问的变化 封装对象的访问过程 里氏代换原则
8 命令行模式Command 比较常用 应用级 设计时、编码时 比较简单 请求的变化 封装行为对对象 开闭原则
9 观察者模式Observer 比较常用 应用级、构架级 设计时、编码时 比较简单 通讯对象的变化 封装对象通知 开闭原则
10 策略模式Strategy 比较常用 应用级 设计时 一般 算法的变化 封装算法 里氏代换原则
11 建造者模式Builder 一般 代码级 编码时 一般 对象组建的变化 封装对象的组建过程 开闭原则
12 适配器模式Adapter 一般 代码级 重构时 一般 对象接口的变化 接口的转换
13 桥梁模式Bridge 一般 代码级 设计时、编码时 一般 对象的多维度变化 分离接口以及实现 开闭原则
14 装饰模式Decorator 一般 代码级 重构时 比较复杂 对象的组合职责 在稳定接口上扩展 开闭原则
15 迭代器模式Iterator 一般 代码级、应用级 编码时、重构时 比较简单 对象内部集合的变化 封装对象内部集合的使用 单一职责原则
16 中介者模式Mediator 一般 应用级、构架级 编码时、重构时 一般 对象交互的变化 封装对象间的交互 开闭原则
17 备忘录模式Memento 一般 代码级 编码时 比较简单 状态的辅助保存 封装对象状态的变化 接口隔离原则
18 状态模式State 一般 应用级 设计时、编码时 一般 对象状态的变化 封装与状态相关的行为 单一职责原则
19 访问者模式Visitor 一般 应用级 设计时 比较复杂 对象操作变化 封装对象操作变化 开闭原则
20 原型模式Prototype 不太常用 应用级 编码时、重构时 比较简单 实例化的类 封装对原型的拷贝 依赖倒置原则
21 享元模式Flyweight 不太常用 代码级、应用级 设计时 一般 系统开销的优化 封装对象的获取
22 责任链模式Chain Of Responsibilities 不太常用 应用级、构架级 设计时、编码时 比较复杂 对象的请求过程 封装对象的责任范围
23 解释器模式Interpreter 不太常用 应用级 设计时 比较复杂 领域问题的变化 封装特定领域的变化