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