前面几篇讲了观察者模式,这篇讲一下同样很有用的适配器模式。
“适配器”顾名思义,是用来做适配的,将不同规格的设备通过统一规格的适配器对接到你的系统中。
看一个简单的例子:
<?php
/**
* 微博提供的登录类
* Class Weibo
*/
class We...
shanhuhai
8年前 (2017-08-29) 4266℃
3喜欢
上一篇我们在观察者模式中加入了事件,插件可以根据不同的事件来做不同的业务处理,基本上很简单,我们直接通过主体对象携带事件名称即可。
下面我们要实现的是,只有在知道具体事件后才去实例化绑定了此事件的插件。
下面是具体的实现:
<?php
/**
* Author: shan...
shanhuhai
8年前 (2017-08-28) 4011℃
5喜欢
上一篇通过一个简单的例子介绍了下什么是观察者模式,在实际的业务中,观察者应该对不同的情况做出不同的发应,这个其实很简单,我们加一个给主体对象加一个event的属性就ok了。
看对上一篇修改后的代码,可以自己对比下,改动并不大:
<?php
/**
* 支持了事件的版本
...
shanhuhai
8年前 (2017-08-27) 2608℃
3喜欢
今天来介绍一个很有用的设计模式,“观察者模式”,顾名思义,既然有“观察者”, 那么一定就有“被观察者”,从这个层面可以理解到,在这个设计模式中有两个对象, 一个是主体对象,一个是客体对象,在实际的代码实现上实际是“被观察者”主动通知了“观察者”。“被观察者”是主体对象,现在看不懂...
shanhuhai
8年前 (2017-08-26) 4151℃
8喜欢
先看代码:
<?php
if (PHP_SAPI != 'cli') {
exit('Please run it in terminal!');
}
if ($argc < 3) {
exit('At least 2 arguments neede...
shanhuhai
8年前 (2017-08-23) 3628℃
3喜欢
上一篇简单介绍了 php 反射的几个常见类的使用方法,但是用反射能做些什么,你可能还是想象不到,
下面我稍微应用反射类来做点东西,大家知道实例化一个类需要用new 关键字,不用 new 可以吗?答案是可以的,用反射就能实现:
首先创建一个文件 student.php:
<?...
shanhuhai
8年前 (2017-08-22) 5094℃
4喜欢
今天开始学习php 的反射,许多人可能还没有听说过反射这个概念,简单点说反射的就是让你拥有剖析类、函数的能力。
有的同学可能会问我剖析类有什么用,我为什么要学反射,我只能说不学反射并不会对你实现业务有任何影响,但是如果你想写出结构优雅的程序,想写出维护性和扩展性都很高的程序,学习...
shanhuhai
8年前 (2017-08-21) 3110℃
4喜欢
相信单元测试对于大多数PHP程序员来说还都处于听说过的阶段,似乎PHP就是为了开发速度快而生的,做了单元测试岂不是会拖慢开发速度?这个说法好像也是有道理的,但是还是要针对项目特点,有些对稳定性,健壮性要求的项目,做单元测试可以大幅减少bug的产生率,提高后期维护性,所以想做一个优...
shanhuhai
8年前 (2017-08-18) 11292℃
2喜欢
现在你应该知道如何做一个模板引擎类了,只不过使用原生的 php 做模板语法。
看下面代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
...
shanhuhai
8年前 (2017-08-11) 4614℃
3喜欢
上一篇,我们给出了一个简单的模板引擎的例子,通过 extract 函数将变量注入到当前作用域,通过 include 将模板文件引入,从而将变量注入到了模板,但是这种方法的问题是,我们无法拿到内容,内容直接输出到了浏览器端,这篇我们看看如何拿到模板解析后的内容。
缓存区控制函数
在...
shanhuhai
8年前 (2017-08-10) 6516℃
1喜欢