-
面向对象和设计模式(二十五) 解耦操作和对象之访问者模式——PHP实现
发布时间:2023-10-29 15:27一、访问者模式的定义访问者模式是一种用来解耦操作和对象本身的设计模式,它将对象中复杂的操作从对象本身分离处理放到其他的访问者对象中,以满足类职责单一、开闭原则并应对代码复杂性。二、访问者模式的演变和使
-
面向对象和设计模式(二十四) 如何实现有限状态机之状态模式——PHP实现
发布时间:2023-06-06 14:03一、什么是有限状态机在介绍状态模式之前,需要介绍“有限状态机”的概念。通俗的来说,如果一个对象拥有不同且有限个数的状态,且在特定的情况下,这些状态可以相互切换,那么我们就可以说这个对象是一个有限状态机
-
面向对象和设计模式(二十三) 对象与数据的流水线处理之职责链模式——PHP实现
发布时间:2023-05-29 23:10一、职责链模式定义客户端发送一个请求,请求的接收者被串成一条链,这个请求在这条链上传递,直到链上的某个接收对象能够处理它为止(或者是链上的每一个接收者都会对这个请求作出属于它自己的处理)。一个请求先经
-
面向对象和设计模式(二十二) 代码中如何留下扩展点之模板模式和策略模式——PHP语言实现
发布时间:2023-05-20 10:19一、模板模式的定义模板模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。这里的“算法”,我们可以理解为广义上的“
-
面向对象和设计模式(二十一) 联动逻辑如何处理?观察者模式——PHP语言实现
发布时间:2023-05-16 23:05定义观察者模式又叫做发布订阅模式,观察者模式的定义如下:在对象之间定义一个一对多的关联,当一个对象状态改变的时候,所有下游关联的对象都会自动收到通知并做出相应改变。下游对象就是观察者,而上游对象就是被
-
面向对象和设计模式(二十) 节省内存的享元模式——PHP语言实现
发布时间:2023-05-03 11:11一、享元模式概念“享元”,顾名思义就是被共享的单元。享元模式的意图是复用对象节省内存,前提是享元对象是不可变对象。我们将对象的信息分为两个部分: 内部状态和外部状态。内部状态是对象内部共享的属性,不随
-
面向对象和设计模式(十九)支持树形结构的组合模式——PHP语言实现
发布时间:2023-05-03 10:47一、组合模式概念组合模式可以将一组对象组织成树形结构,以表示一种“部分 - 整体”的层次结构。因此,组合模式是一种用于树形结构数据的设计模式。组合模式跟之前讲的面向对象设计中的“组合关系(通过组合来组
-
面向对象和设计模式(十八)适配器模式——PHP语言实现
发布时间:2023-05-03 10:39一、适配器模式适配器模式是一种可以将不具有某些接口的类或者具有某些接口但需要对其功能做一些修饰和扩展的类转为具有目标接口或功能的类的一种设计模式。最常见的场景就是一个业务类A依赖具有B方法的对象。类C
-
面向对象和设计模式(十七)装饰器模式——PHP语言实现
发布时间:2023-02-24 20:17一、装饰器的使用场景 装饰器可以在不改变原始类(又称为被装饰类)的情况下,通过在装饰器类中添加扩展功能的方式来给原始类附加额外功能,并且通过自由组合多个装饰器可以为原始类定制化添加多个功能。
-
面向对象和设计模式(十六)桥接模式——PHP语言实现
发布时间:2023-02-11 10:39一、桥接模式概念 网上对桥接模式的解释有两种。 第一种理解方式是将抽象和实现解耦,让它们可以独立变化。 说具体一点就是将抽象和实现完全分开,“抽象&r
-
面向对象和设计模式(十五)代理模式与动态代理模式——PHP语言实现
发布时间:2023-02-09 18:54一、代理模式的使用场景代理模式可以在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加额外功能。直接上例子,假如我们要给用户模块的登录和注册接口添加一个性能告警的小功能,这个功能要
-
PHP设计模式篇(六) Trait特性——类方法的组合模式
发布时间:2022-11-12 10:33一、什么是Trait 我们知道PHP类是不能多继承的,Trait就是类似于多继承的一种代码复用机制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。 实际上,这里说Tra
-
PHP常用扩展(二) PHP用户级缓存——APCu
发布时间:2022-04-20 11:41一、APC 可选PHP缓存APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户
-
PHP常用扩展(一) PHP字节码缓存——Opcache
发布时间:2022-04-20 09:38一、什么是opcacheOpcache是一种通过将PHP脚本预编译的字节码(Operate Code)存放在共享内存中,避免每次请求都要加载和解析PHP脚本,解析器可以直接从共享内存读取已经缓存的字节
-
PHP设计模式篇(五) 错误Error和异常Exception处理
发布时间:2022-03-16 15:08- 错误和异常PHP7中,错误是指 Error 类,异常是指 Exception 类,他们都继承自 Throwable 类。Exception和Error的不同点:a. 产生方式不同和性质不同Exce
-
PHP设计模式篇(四) 门面模式
发布时间:2022-03-16 14:31门面模式的作用是使一个全部都是非静态方法的类无需实例化就能直接通过静态方式调用该类里面的方法(好无聊好鸡肋...)。 以TP5的门面模式为例: Tp5的门面基类在\th
-
PHP设计模式篇(三) 注册树模式 + 反射 实现依赖注入容器
发布时间:2022-03-15 21:25- 注册树模式 注册树模式将对象实例注册到一个全局的对象树上,业务层需要的时候可以直接从对象树取出该对象使用,使业务层无需在业务代码中new一个对象,造成两个对象耦合。 &nbs
-
PHP设计模式篇(二) 类自动加载
发布时间:2022-03-15 20:54php的__autoload魔术方法和spl_autoload_register()可以做到在不手动引入类文件的情况下自动加载类。- 魔术方法__autoload()__autoload()方法的用法
-
PHP设计模式篇(一) 单例模式和工厂模式
发布时间:2022-03-15 20:35- 单例模式单例模式的适用场景是复用唯一的单实例,例如创建数据库连接只创建一个唯一连接,之后所有sql都复用该连接。单例模式如何实现:1、需要一个private的构造函数;2、需要一个静态成员保存类的
-
PHP使用PDO操作mysql
发布时间:2020-01-19 16:181.pdo连接数据库(初始化):$pdo=new PDO("mysql:host=localhost;dbname=库名","用户名","密码");2.执行增删改:$res=$pdo->exec