PHP设计模式-访问者模式

PHP设计模式-访问者模式

前面我们已经讲了22个设计模式。大部分设计模式的原理和实现都很简单,不过也有例外,比如今天要讲的最后一个设计模式--访问者模式。它可以算是 23 种经典设计模式中最难理解的几个之一。因为它难理解、难实现,应用它会导致代码的可读性、可维护性变差,所以,访问者模式在实际的软件开发中很少被用到,在没有特别必要的情况下,建议你不要使用访问者模式。 尽管如此,为了让你以后读到应用了访问者模式的代...

PHP 2020-07-25 PM 52次 0条
PHP设计模式-中介者模式

PHP设计模式-中介者模式

**中介者模式**的英文翻译是 Mediator Design Pattern。在 GoF 中的《设计模式》一书中,它是这样定义的: > Mediator pattern defines a separate (mediator) object that encapsulates the interaction between a set of objects and the obje...

PHP 2020-07-23 PM 51次 0条
PHP设计模式-解释器模式

PHP设计模式-解释器模式

上篇文章,我们讲了命令模式。命令模式将请求封装成对象,方便作为函数参数传递和赋值给变量。它主要的应用场景是给命令的执行附加功能,换句话说,就是控制命令的执行,比如,排队、异步、延迟执行命令、给命令执行记录日志、撤销重做命令等等。总体上来讲,命令模式的应用范围并不广。 今天,我们来学习解释器模式,它用来描述如何构建一个简单的“语言”解释器。比起命令模式,解释器模式更加小众,只在一些特定的领域...

PHP 2020-07-20 PM 56次 1条
PHP设计模式-命令模式

PHP设计模式-命令模式

命令模式的英文翻译是 Command Design Pattern。在 GoF 的《设计模式》一书中,它是这么定义的: > The command pattern encapsulates a request as an object, thereby letting us parameterize other objects with different requests, queue ...

PHP 2020-07-19 PM 71次 0条
PHP设计模式-备忘录模式

PHP设计模式-备忘录模式

**备忘录(Memento)模式**,也叫快照(Snapshot)模式,英文翻译是 Memento Design Pattern。在 GoF 的《设计模式》一书中,备忘录模式是这么定义的: > Captures and externalizes an object’s internal state so that it can be restored later, all without ...

PHP 2020-07-17 PM 67次 0条
PHP设计模式-SPL迭代器

PHP设计模式-SPL迭代器

上篇文章中我们讲了迭代器模式的原理、实现和设计意图。迭代器模式主要作用是解耦容器代码和遍历代码,这也印证了我们前面多次讲过的应用设计模式的主要目的是解耦。 其实在php中,PHP在php5版本后就已经在spl库内置了Iterator接口,以及大量的已经实现的迭代器,如数组,文件等遍历,今天我们就来讲解一些php中的迭代器。在讲解php的迭代器前我们先来了解一下PHP的spl。 ### s...

PHP 2020-07-15 PM 78次 0条
PHP设计模式-迭代器模式

PHP设计模式-迭代器模式

上一篇文章中,我们学习了状态模式。状态模式是状态机的一种实现方法。它通过将事件触发的状态转移和动作执行,拆分到不同的状态类中,以此来避免状态机类中的分支判断逻辑,应对状态机类代码的复杂性。 今天,我们学习另外一种行为型设计模式,迭代器模式。它用来遍历集合对象。不过,很多编程语言都将迭代器作为一个基础的类库,直接提供出来了。在平时开发中,特别是业务开发,我们直接使用即可,很少会自己去实现一个...

PHP 2020-07-14 PM 80次 0条
PHP设计模式-状态模式

PHP设计模式-状态模式

在实际的软件开发中,状态模式并不是很常用,但是在能够用到的场景里,它可以发挥很大的作用。从这一点上来看,它有点像我们之前讲到的组合模式。 状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,还有分支逻辑法与查表法。今天,我们就详细讲讲这几种实现方式,并且对比一下它们的优劣和应用场景。 ##什么是有限状态机? 有限状态机,英...

PHP 2020-07-09 PM 85次 0条
PHP设计模式-职责链模式

PHP设计模式-职责链模式

职责链模式也叫责任链模式。职责连模式的英文翻译是 Chain Of Responsibility Design Pattern。在 GoF 的《设计模式》中,它是这么定义的: > Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle t...

PHP 2020-07-07 PM 86次 0条
PHP设计模式-策略模式

PHP设计模式-策略模式

**策略模式**,英文全称是 Strategy Design Pattern。在 GoF 的《设计模式》一书中,它是这样定义的: > Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independentl...

PHP 2020-07-03 PM 106次 0条