自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

随机应变的访问者模式(Visitor Pattern)

有一天,技术总监说要知道所有技术员工的工作情况,第二天,老板说要知道所有员工的业绩,再有一天,HR总监要知道所有员工的工资。每一次都是利用组合模式遍历出员工后获取员工的相关信息。也许你会说,直接把所有的信息全输出就行了,那估计你要被老板叼了,老板就想知道业绩,你把一个大表给看找,好吧,你可以回家了!让访问者模式来帮我们解决这个问题,类图如下:可以看出,有个visitor,这就是访问者,貌似有...

2014-04-30 17:26:33 277

回到过去的备忘录模式(Nemento Pattern)

今天学习一个比较少用的备份模式-----备忘录模式。通过名字应该都可以知道其作用了,就是对象或对象属性作备份,方便随便取回。拿打怪来说,开始我有100血,打着打着,剩20了,我想重玩,重新回到100血的状态。用备忘录实现此情形的类图如下:没错,一个简单的功能备忘录标准要用三个类实现。可能你会说为什么要个备忘录管理类,没必要啊,没有管理类功能照样可以实现,但是这样客户端需要关心备忘录,这对迪米...

2014-04-25 11:10:38 163

金玉其外的门面模式(Facade Pattern)

今天说一个简单易懂的封装模式——门面模式。 <?phpinterface ILetterProcess{ public function writeContent( $content ); public function fileEnvelope( $address ); public function letterIntoEnvelope(); public ...

2014-04-24 09:33:26 116

隔墙有耳的观察者模式(Observer Patern)

登录系统想必大家都做过,验证用户名密码就登录成功,日志系统应该记录此次登录,如果登录出错,安全系统应该会记录此次错误,邮件系统也应该会发送相关邮件给管理员,等等。这就好像登录系统被很多人监视一样,一旦有什么风吹草动,立即会被其它系统获悉。那就用观察者模式来试试,类图如下:很简单的模式,实现代码:<?phpinterface Observable{ function atta...

2014-04-22 15:07:34 174

树状的组合模式(composite pattern)

一个公司是由每一个工作的成员组成,每一个成员有不同的属性(名字,职位,薪水),根据不同的等级,构成一个树形的结构。总经理是这个棵树的根节点,因为他没有上级,部门经理是树枝节点,因为他既有上级也有下级,小喽啰是叶节点,因为他是最底层的苦逼,没有下级。现用组合模式将这个树展示出来,类图:代码如下:<?phpabstract class Corp { private $name ...

2014-04-17 15:56:19 211

美中不足的适配器模式(adapter pattern)

之前买过个ipad玩,当用其充电器充电时遇到了点麻烦(有的同学应该知道),家里没有适合它的插座。还好,卖家送了个接头转换部件,问题轻松解决。这就是适配器的作用。<?phpinterface IUserInfo{ public function getUserName(); public function getUserId(); public function get...

2014-04-17 09:59:34 111

足智多谋的策略模式(Strategy Pattern)

夏天来了,深圳的大小梅沙必将是人满为患,大家在游泳时还是要注意安全地。那如果真人有溺水了怎么办?有人会打120,有人会做人工呼吸(必须得是个美女才行),有人会用拳头叩击心前区急救。他们的做法都是对的,只是不同情况,不同的人会有不同的策略!既然这样,那就用策略模式来模拟下,类图如下:由图可以看出,策略模式非常简单,直接上代码: <?phpinterface IStrate...

2014-04-15 13:40:48 206

另辟蹊径的装饰模式(Decorator Pattern)

在天朝,没钱的孩子从小就得学好”数理化“,为的就是能考个好分数。但并不是每一个小孩都是读书的料,有的小孩就是没那个天赋,小的时候,记得每次考试后都要给家长报告,然后要签字,表示已经给家长看过了。小明就是个没天赋的孩子,他这次又考砸了,语文65,数学68,英语66,但小明并不笨,直接跟老爸说考这么点估计会被暴打一顿,因此他决定先说”这次考试语言最高是75,数学最高是78,英语最高是88“,再汇报自...

2014-04-14 16:43:39 95

职责分明的责任链模式(Chain of Responsibility Pattern)

中国自古有重男轻女的观念,在古代,未婚女子要想出去逛街都要经过父亲的同意,而有丈夫的则要请示丈夫,如果丈夫去世了,有儿子的还得请示儿子,这就是所谓的“三从”。果然很苦逼!我们用程序来模拟一下这个过程:<?phpinterface IWomen{ public function gettype(); public function getRequest();}...

2014-04-14 11:57:16 150

不求过程的命令模式(Command Pattern)

以前做对外做项目的时候,部门大致分为需求组,美工组,代码组,客户找到需求人员讨论需求,找到美工人员讨论页面,找到代码人员讨论功能。<?phpabstract class Group { public abstract function find(); public abstract function add(); public abstract function del...

2014-04-11 16:15:27 113

助人为乐的中介者模式(Mediator Pattern)

还记得我刚毕业的第一家公司是做b2c的,当时要做一个进销存系统,相信做过的人都应该清楚。拿最简单的进销存系统为例,其可分为采购管理、销售管理、和存货管理,三个模块相互依赖,假设现在公司为一家卖电脑的经销商:1、销售情况销售部门要反馈销售情况,畅销就多采购,滞销就不采购。2、库存情况即使是畅销产品,库存都有100台了,每天才卖出去1台,也不需要采购了!库房有货,才能销售,空手套...

2014-04-09 16:52:59 210

clone的原型模式(Prototype Pattern)

发邮件的功能想必都做过,发邮件相当的耗时,于是大多使用多线程来实现。但假设产生第一封邮件对象,放到线程1中运行,还没有发送出去,线程2也启动了,直接把邮件对象修改了,线程不安全了。在这里我使用原型模式来解决<?phpclass Mail{ private $title; private $content; private $receiver; public func...

2014-04-09 10:05:10 89

偷懒的代理模式(Proxy Pattern)

代理,百度百科解释道:以他人的名义,在授权范围内进行对被代理人直接发生法律效力的法律行为。玩游戏的同学对代练肯定不陌生,找代练帮忙升级打怪,下面就以此例编写个简单的代理模式:结构如图,首先定义一个游戏接口,接口有游戏的一些基本动作,如登录,打怪,升级。再定义一个玩家的类,继承游戏接口,实现动作。最后定义一个代理类,客户端通过调用代理实际完成玩家的动作。 <?phpint...

2014-04-04 17:27:16 133

Memcached 内存分析、调优、集群

Memcached 内存分析、调优、集群,绝对好东西

2014-10-29

postgresql9.0中文手册

postgresql9.0的中文chm手册,实用不解释

2014-01-04

C++东南大学何洁月课件(总).ppt

C++东南大学何洁月课件(总).ppt,c++必看教程

2012-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除