多年之前写过一个爬虫,里面用到了模板模式,模板模式实现起来好像很简单,基本上只用抽象类加继承就可以了,它总是这么普通以至于人们总是忽略它。但我要说的是当你无论遇到什么问题都应该想想这个问题是不是用模板模式解决更好,也许你会有意想不到的惊喜。
模板模式的解释
模板模式是说,在父类中...
shanhuhai
7年前 (2017-09-03) 3812℃
8喜欢
如果你最近在学习设计模式,你会发现很多设计模式很相似,几乎是一样的,但是名称却不一样,为什么呢?
因为同样的设计思想在不同的场景下人们就会对它有不同的认识,这基本上其实是用来帮助使用者判断在什么场景下该用什么设计模式。
门面模式Facade
今天来学习下门面模式。门面模式是指提供...
shanhuhai
7年前 (2017-09-02) 4578℃
7喜欢
前面几篇讲了观察者模式,这篇讲一下同样很有用的适配器模式。
“适配器”顾名思义,是用来做适配的,将不同规格的设备通过统一规格的适配器对接到你的系统中。
看一个简单的例子:
<?php
/**
* 微博提供的登录类
* Class Weibo
*/
class We...
shanhuhai
7年前 (2017-08-29) 4140℃
3喜欢
上一篇我们在观察者模式中加入了事件,插件可以根据不同的事件来做不同的业务处理,基本上很简单,我们直接通过主体对象携带事件名称即可。
下面我们要实现的是,只有在知道具体事件后才去实例化绑定了此事件的插件。
下面是具体的实现:
<?php
/**
* Author: shan...
shanhuhai
7年前 (2017-08-28) 3905℃
5喜欢
上一篇通过一个简单的例子介绍了下什么是观察者模式,在实际的业务中,观察者应该对不同的情况做出不同的发应,这个其实很简单,我们加一个给主体对象加一个event的属性就ok了。
看对上一篇修改后的代码,可以自己对比下,改动并不大:
<?php
/**
* 支持了事件的版本
...
shanhuhai
7年前 (2017-08-27) 2500℃
3喜欢
今天来介绍一个很有用的设计模式,“观察者模式”,顾名思义,既然有“观察者”, 那么一定就有“被观察者”,从这个层面可以理解到,在这个设计模式中有两个对象, 一个是主体对象,一个是客体对象,在实际的代码实现上实际是“被观察者”主动通知了“观察者”。“被观察者”是主体对象,现在看不懂...
shanhuhai
7年前 (2017-08-26) 4003℃
8喜欢
设计模式是一系列的软件设计思想,这些思想是跨越语言和时间的,它们的主要作用是帮助我们设计出更好的程序。
也许你编程已经很多年了还从未接触过设计模式,不用慌张,很多人和你一样,不会设计模式并不会影响你完成业务代码,相反懂得了设计模式,也许你减慢你的开发速度,这听你起来有点耸人听闻,...
shanhuhai
7年前 (2017-08-25) 3870℃
3喜欢