当初看《设计模式》和《J2EE核心模式》时,跟大多数朋友一样,我也想着怎样去实现各种模式,怎么借鉴这些模式到
PHP中来。而当我有一天看到《J2EE核心模式》里的前端控制器是持久的时,我脑袋一震:我是不是被弄得阻抗不匹配了?
之后再回来看《设计模式》里的单件模式,再回想起当年写C程序时的经历,我跟我自己说,我是彻底犯傻了:写什么单件?
为什么写单件?它适合PHP的动作方式么?有必要么?对这些问题,我思考一番后,答案都是:否。
沉浸久了,要适时地走出来看看。所谓当局者迷,旁观者清,一样的道理。是的,我学习设计模式,学习架构模式,因
为我想得到更好的设计。然而对PHP程序员来说,这里有一个非常隐蔽的陷阱:传统的设计模式和架构模式是从持久型应用
里提取出来的,其中的一部分不仅不适合PHP,反而会对PHP程序员产生很大的误导!
聊聊单件。比如Unix系统中一个运行在后台的daemon程序,它监听一个套接口。程序里有一个前端控制器,负责请求的
统一接收,然后把控制委派到内部的某个对象。为了讲述方便,假设这某个对象把所有的事情都办完了,执行流返回了前端
控制器,然后前端控制器把结果内容发送回请求者。接下来,该前端控制器并没有就此消失,它还是存在于内存里,继续监
听下一个请求。
再看看PHP脚本又是如何。首先当然你也可以弄一个index.php的脚本充当前端控制器,把它实现成单件模式。然后,同
样,它给另外一个对象委派执行ÿ
PHP中来。而当我有一天看到《J2EE核心模式》里的前端控制器是持久的时,我脑袋一震:我是不是被弄得阻抗不匹配了?
之后再回来看《设计模式》里的单件模式,再回想起当年写C程序时的经历,我跟我自己说,我是彻底犯傻了:写什么单件?
为什么写单件?它适合PHP的动作方式么?有必要么?对这些问题,我思考一番后,答案都是:否。
沉浸久了,要适时地走出来看看。所谓当局者迷,旁观者清,一样的道理。是的,我学习设计模式,学习架构模式,因
为我想得到更好的设计。然而对PHP程序员来说,这里有一个非常隐蔽的陷阱:传统的设计模式和架构模式是从持久型应用
里提取出来的,其中的一部分不仅不适合PHP,反而会对PHP程序员产生很大的误导!
聊聊单件。比如Unix系统中一个运行在后台的daemon程序,它监听一个套接口。程序里有一个前端控制器,负责请求的
统一接收,然后把控制委派到内部的某个对象。为了讲述方便,假设这某个对象把所有的事情都办完了,执行流返回了前端
控制器,然后前端控制器把结果内容发送回请求者。接下来,该前端控制器并没有就此消失,它还是存在于内存里,继续监
听下一个请求。
再看看PHP脚本又是如何。首先当然你也可以弄一个index.php的脚本充当前端控制器,把它实现成单件模式。然后,同
样,它给另外一个对象委派执行ÿ