文章列表
编程语言 / 陈大剩
· 2023-05-23 16:06:39
php设计模式(二十一):备忘录模式(Memento)。备忘录模式备忘录模式又称为快照、Snapshot、Memento,备忘录模式是一种行为设计模式,允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 问题很多时候我们是按照产品的需求,对代码多次改版,可能因为某次疏忽(未保存就关机了),就导致代码不翼而飞,这会使我们非常懊恼,少则加班几小时,多则几个通宵。如果有"后悔药"可吃,那一定不会说:“曾经有一份写好的代码摆在我的面前
编程语言 / 陈大剩
· 2023-05-22 20:15:01
php设计模式(二十):状态模式(State)。状态模式状态模式又称为:State。状态是一种行为设计模式,能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。 问题有一个 文档 Document 类。 文档可能会处于 草稿(Draft) 、 审阅中 (Moderation)和 已发布(Published)三种状态中的一种。 文档的 发布(publish)方法在不同状态下的行为略有不同:
编程语言 / 陈大剩
· 2023-05-21 20:21:43
php设计模式(十九):观察者模式(Observer)。观察者模式观察者模式又称为:事件订阅者、监听者、EventSubscriber、Listener、Observer。观察者是一种行为设计模式,允许定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。 问题观察者模式是一种发布和订阅模式,我们平常去抢购茅台、Aj、...多少会用到观察者模式。如我们抢购鞋子(AJ),平常每天去门店看看鞋子是否到货。但如果
编程语言 / 陈大剩
· 2023-05-13 23:06:59
php设计模式(十八):中介者模式(Mediator)。 中介者模式中介者模式又称为:调解人、控制器、Intermediary、Controller、Mediator。中介者是一种为设计模式,能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。 问题中介者模式其实就是一个中介,前面我们介绍了:命令模式,命令模式在两个类之间建立一个中间类来达到解耦,中介模式也相同,区别的是命令模式只能
编程语言 / 陈大剩
· 2023-05-12 22:12:20
php设计模式(十七):迭代器模式(Iterator)。 迭代器模式迭代器模式又称为:Iterator。迭代器是一种行为设计模式,能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。迭代器模式允许用户通过特定的顺序访问容器中的数据,它将数据和顺序的实现分离,很少有有人直接去用迭代器的了,因为一般语言已经帮实现了如:foreach...,所以单独使用的常见很少了。 问题需要对数组进行倒序遍历怎么办? 解决方法
编程语言 / 陈大剩
· 2023-05-11 17:34:11
php设计模式(十六):命令模式(Command)。命令模式命令模式又称为:动作、事务、Action、Transaction、Command。命令是一种行为设计模式,可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。 问题大家肯定经常是用命令的,命令一敲,啥都不爱,这个笑话大家肯定看过:这样一操作,你可能离包吃包住不远了,那么
编程语言 / 陈大剩
· 2023-05-10 12:01:09
php设计模式(十五):职责链模式(Chain of Responsibility)。责任链模式责任链模式又称为:职责链模式、命令链、CoR、Chain of Command、Chain of Responsibility。责任链是一种行为设计模式,允许将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 问题假设我们需要开发一个线下“PHP设计模式”培训课,办一个班,需要政府审批。 所以我们去了当地县教育
编程语言 / 陈大剩
· 2023-05-08 17:15:56
php设计模式(十四):代理模式(Proxy)。代理模式代理模式又称 Proxy,代理是一种结构型设计模式,能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。 问题代理在我们生活中无处不在,比如说:我们超时买的怡宝矿泉水,都零售商从地区代理商那批发来的,我们程序员也经常为了翻过一堵墙用谷歌查找资料使用代理等。我们有这样一个消耗大量系统资源的巨型对象,我们是偶尔需要使用
编程语言 / 陈大剩
· 2023-05-04 23:50:23
php设计模式(十三):享元模式(Flyweight)。享元模式享元模式又称:缓存、Cache、Flyweight,享元是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 问题我们需要开发一款简单的游戏:玩家们在地图上移动并相互射击。实现一个真实的 弹类 系统,并将其作为游戏
编程语言 / 陈大剩
· 2023-04-28 08:10:15
php设计模式(十二):外观模式(Facade)。外观模式外观模式又称:门面模式、Facade。外观 是一种 结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。这么说你肯定会懵,简单接口?啥???。在面向对象框架中我们使用的各种扩展包,就巧妙的利用了门面模式,大部分拓展包我们都只要引用他的 一个类 就可执行 所有的方法,看拓展包源码你会发现源码文件这么多类?怎么我们使用时只要引入一个类???
....正在加载