
PHP-设计模式
文章平均质量分 53
设计模式学习笔记,PHP版本
仟玑
这个作者很懒,什么都没留下…
展开
-
011-PHP设计模式之状态模式
十一、状态模式11.1 什么是状态模式当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类11.2 怎么实现状态模式State 抽象状态角色:接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换ConcreteState 具体状态角色:每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理Context 环境角色:定义客户端需要的接口,并且负责具体状态的切换<?phpnamespace state;class Context{ public原创 2022-05-31 10:14:24 · 221 阅读 · 0 评论 -
010-PHP设计模式之门面模式
十、门面模式10.1 什么是门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用10.2 怎么实现门面模式Facade 门面角色:客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任subsystem 子系统角色:可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类,而是一个类的集合。子系统并不知道门面的存在<?phpclass Auth{ public function auth()原创 2022-05-31 10:13:38 · 416 阅读 · 0 评论 -
009-PHP设计模式之观察者模式
九、观察者模式9.1 什么是观察者模式观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/subscribe),它是一个在项目中经常使用的模式定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新9.2 怎么实现观察者模式Subject 被观察者:定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者;仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者Observer 观察者:观察者接收到消息后,对接收原创 2022-05-30 14:24:26 · 317 阅读 · 0 评论 -
008-PHP设计模式之适配器模式
八、适配器模式8.1 什么是适配器模式将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作8.2 怎么实现适配器模式Target 目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接口Adaptee 源角色:想把谁转换成目标角色,这个“谁”就是源角色,它是已经存在的、运行良好的类或对象,经过适配器角色的包装,它会成为一个崭新、靓丽的角色Adapter 适配器角色:适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是原创 2022-05-30 14:16:36 · 185 阅读 · 0 评论 -
007-PHP设计模式之策略模式
七、策略模式7.1 什么是策略模式定义一组算法,将每个算法都封装起来,并且使它们之间可以互换7.2 怎么实现策略模式Context 封装角色:也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化Strategy 抽象策略角色:策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性ConcreteStrategy 具体策略角色:实现抽象策略中的操作,该类含有具体的算法<?phpinterface Strategy{ p原创 2022-05-20 10:39:56 · 353 阅读 · 0 评论 -
006-PHP设计模式之装饰者模式
六、装饰者模式6.1 什么是装饰者模式动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活6.2 怎么实现装饰者模式Component 抽象构件:一个接口或者是抽象类,就是定义我们最核心的对象,也就是最原始的对象ConcreteComponent 具体构件:最核心、最原始、最基本的接口或抽象类的实现,你要装饰的就是它Decorator 装饰角色:实现接口或者抽象方法,它里面可不一定有抽象的方法呀,在它的属性里必然有一个private 变量指向 Component 抽原创 2022-05-19 10:44:23 · 138 阅读 · 0 评论 -
005-PHP设计模式之责任链模式
五、责任链模式5.1什么是责任链模式使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止5.2怎么实现责任链模式责任链模式的核心在“链”上,“链”是由多个处理者 Handler 组成的抽象的 Handler 类:定义抽象方法,提供注册下一个 Handler 的接口具体的 Handler 类:实现抽象类方法,注册自己能处理的事件级别事件类:定义自己的事件级别<?phpclass Request原创 2022-05-17 16:10:05 · 189 阅读 · 0 评论 -
004-PHP设计模式之模板方法模式
四、建造者模式4.1什么是建造者模式建造者模式也称为生成器模式,Separate the construction of a complex object from its representation sothat the same constructionprocess can create different representations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)。简答来说,就是把不同流程的类的生成单独抽到同一个管理类中。该类只负责调用具原创 2022-05-16 15:28:57 · 104 阅读 · 0 评论 -
003-PHP设计模式之模板方法模式
三、模板方法模式3.1什么是模板方法模式定义一个操作中的算法的框架,而将一些步骤延时到子类中。使得子类可以不改变一个算法结构即可重定义该算法的某些特定步骤。简单来说,就是定义一个有步骤的父类,然后其中的一些步骤方法允许子类重写,而核心的步骤方法不能被重写。比如定义一个买菜流程。buy(买菜)方法中依次调用了 goOut(出门)、choose(选菜)、pay(付钱)、goBack(回家) 方法。我允许你将除了 buy() 方法外的其他方法给重写。这种形式就叫做模式方法模式。3.2怎么实现模式基础原创 2022-05-13 15:37:50 · 124 阅读 · 0 评论 -
002-PHP设计模式之工厂模式
二、工厂模式2.1什么是工厂模式Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class deferinstantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。)简白来说,就是创建一个方法实例化其他的类,具体实例化那个类,由原创 2022-05-12 10:45:05 · 105 阅读 · 0 评论 -
001-PHP设计模式之单例模式
一、单例模式1.1什么是单例模式单例模式,顾名思义,就是这个类只存在一个实例;不管有多少 new 操作,都只返回同一个对象;其根本目的就是减少 new 操作,以及在一些场景下保证不同类操作的都是同一个实例,保证数据一致;1.2为什么使用单例模式当应用中存在大量的 sql 请求,需要用到大量 new 操作来创建 mysql 实例;这样会大大增加 mysql 的连接数。造成 too many connections 警告;此时使用单例模式就可以极大减少 mysql 的连接如果系统需要使用一个原创 2022-05-11 10:45:43 · 895 阅读 · 2 评论