设计模式,是每个程序员必须知道,必须学习的知识,虽然不算是基础,但是你必须要懂得。我这里所了解的大概有23种设计模式,PHP常见的大概有10几种吧。总体来说设计模式分为三大类:创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式共十 ......
215
0
0
2022-11-14
PHP命名空间 主要解决同名函数的冲突问题 有点类似不同目录的同名文件的感觉最初采用 include require函数 后面采用自动加载函数字体选择 source pro codephp>5.3 后 废弃 __autoload() 启用 spl_autoload_rgisterpsr-0 规范命名空间必须与绝对路径一致类名首写字母必须大写除入门文件外 ......
239
0
0
2022-09-24
边缘缓存模式 - Cache-Aside Pattern描述 从存储器中需要的数据加载到缓存。背景和问题 应用程序使用缓存能优化重复访问存储器数据的问题。但是缓存和存储器的数据可能不一致。解决方案读缓存 先读cache,再读db。 1. 如果cache里有数据,直接返回数据。 2. 如果cache里没有数据,那么访问db,并且把数据写到缓存中。更新 ......
288
0
0
2022-08-08
组合实体模式 - Composite Entity Pattern说明 组合实体模式用在持久化机制中。当更新一个组合实体时,内部依赖对象也会自动更新。理解 各个细颗粒对象组合成一个粗颗粒对象,细颗粒对象和粗颗粒对象又可以组合成组合实体。 组合实体的内部状态变化也会引起各个颗粒的状态变化。 通常使用在对象持久化中。结构中包含的角色组合实体(Compos ......
270
0
0
2022-08-08
业务代表模式 - Business Delegate Pattern解释在表示层和业务层之间添加了一个抽象层。用于解耦表示层和业务层。结构中包含的角色客户端(Client) - 表示层代码。在MVC里面就是V层。业务代表类(BusinessDelegate)抽象业务服务(BusinessService)具体业务服务(ConcreteBusinessServi ......
252
0
0
2022-08-08
数据访问对象模式 - Data Access Object Pattern定义对数据源的访问与存储进行封装,提供一个数据访问对象类负责对存储的数据进行管理和操作,规范数据存储格式。 数据访问对象模式,简称DAO模式。结构中包含的角色数据访问对象接口(Data Access Object Interface) ModelDAO 抽象操作数据库的方法数据访问对 ......
284
0
0
2022-08-08
前端控制器模式 - Front Controller Pattern定义提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。结构中包含的角色前端控制器(Front Controller)调度器(Dispatcher)视图(View)最小可表达代码class View { public function show($request ......
272
0
0
2022-08-08
拦截过滤器模式 Intercepting Filter Pattern说明拦截过滤器模式,简称拦截器模式,是责任链模式的一种衍生模式。用于对应用程序的请求或响应做一些预处理/后处理。结构中包含的角色Filter(抽象处理者)RegularFilter(具体处理者)FilterChain(责任链)FilterManager(链条管理者)最小可表达代码inter ......
260
0
0
2022-08-08
MVC模式 - Model-View-Controller定义MVC模式是指 Model-View-Controller(模型-视图-控制器)模式。结构中包含的角色Model(模型)View(视图)Controller(控制器)最小可表达代码class Model { private $name; public function ......
228
0
0
2022-08-08
依赖注入 - Dependence Inversion - DI定义依赖注入是指不是由内部生产(初始化、构造函数 __construct 中通过工厂方法、自行手动 new 的),而是由外部以参数或其他形式注入的。解释简单来说就是把依赖对象的实例化过程交给第三方(IOC容器)来实现。控制 : 依赖对象实例化的控制。正向 : 我们在对象中主动获取依赖对象。反向 ......
285
0
0
2022-08-07
传输对象模式 - Transfer Object Pattern设计的原则和思想在传输对象中填充数据,然后把对象序列化后传输到其他应用。结构中包含的角色业务对象(Business Object)传输对象(Transfer Object)最小可表达代码class Business { private $name; public fun ......
277
0
0
2022-08-07
函数组合和集合管道模式 - Collection Pipeline定义 集合管道是将一些计算转化为一系列操作,每个操作的输出结果都是一个集合,同时该结果作为下一个操作的输入。在函数编程中,通常会通过一系列更小的模块化函数或运算来对复杂运算进行排序,这种方式被称为函数组合。结构中包含的角色Collection 集合对象 最小可表达代码 - Larave ......
221
0
0
2022-08-07
委托模式 - Delegation定义 有两个对象参与(两个对象协同)处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。 委托模式属于行为型模式。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。设计的原则和思想解耦委托者与被委托者。不变部分是委托者和被委托者,变化部分是委托者与被委托者之间的协同方式 ......
250
0
0
2022-08-07
空对象模式 - Null Object Pattern定义 一个空对象取代NULL对象实例的检查。NULL对象可以在数据不可用的时候提供默认的行为,属于行为型设计模式。结构中包含的角色Resource 抽象资源ConcreteResource 具体资源NullResource 空资源ResourceFactory 资源工厂最小可表达代码 ​abstrac ......
222
0
0
2022-08-07
过滤器模式 - Filter Pattern定义 这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。 过滤器模式也叫条件模式,过滤器模式是责任链模式的一种衍生模式,属于结构型设计模式。设计的原则和思想解耦的是请求发送对象(触发业务的对象)和请求处理对象(处理业务的对象)。不变部分是请求处理对象,变化部分是请 ......
260
0
0
2022-08-07