摘要: 装饰器模式(Decorator) 概述 1、装饰器模式可以动态地添加修改类的功能 2、一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法 3、使用装饰者模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性 代码实现如下 使用原型 阅读全文
posted @ 2016-12-11 21:22 少年飞刀 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 原型模式 概述: 1、与工厂模式作用类似,都是用来创建对象 2、与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作 3、原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需 阅读全文
posted @ 2016-12-11 18:54 少年飞刀 阅读(240) 评论(0) 推荐(0) 编辑
摘要: PHP文件操作函数 1、递归展示目录中的所有文件以及文件夹: 2、复制目录中的文件以及文件夹 3、删除目录 阅读全文
posted @ 2016-12-11 18:01 少年飞刀 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1 为什么需要session入库 当session中数据很多时,或者web服务器集群共享session时,就需要将session存入数据库 session存入数据库一般是要重写session存储机制,具体实现主要通过: a 自定义相关session函数 b 创建session表 c 重写sessio 阅读全文
posted @ 2016-12-11 17:48 少年飞刀 阅读(1512) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 概述: 1、观察者模式(Observer),当一个对象状态发生改变时,依赖他的对象全部会收到通知,并自动更新 2、场景:一个事件发生后,要执行一连串更新操作,传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多之后,代码变得难以维护,这种方式是耦合的,侵入式的,增加新的 阅读全文
posted @ 2016-12-11 17:22 少年飞刀 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 数据对象映射模式 1、数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作 2、在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作 3、结合使用数据对象映射模式、工厂模式、注册模式 具体代码如下: 1、定义一个user表,结 阅读全文
posted @ 2016-12-11 16:12 少年飞刀 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 策略模式 1、概述:策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式称为策略模式 例如:一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告 传统的是使用条件分支进行判断,代码不灵活 使用策略模式,要先定义一个约束行为的接口,I_U 阅读全文
posted @ 2016-12-11 14:24 少年飞刀 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 适配器模式 1、适配器模式,可以将截然不同的函数接口封装成统一的API 2、实际应用举例,PHP的数据库操作有mysql、mysqli、pdo三种,可以用适配器模式统一成一致,类似的场景还有cache适配器,将memcache,redis,file,apc等不同的缓存函数,统一成一致。APC参考鸟哥 阅读全文
posted @ 2016-12-11 12:18 少年飞刀 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 一、工厂设计模式 index.php $db = IMooc\Factory::createDatabase(); 使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改即可。 IMooc/Factory.php 二、单例设计模式 保证在整个脚本运行期间,只有一个对象的 阅读全文
posted @ 2016-12-11 11:28 少年飞刀 阅读(339) 评论(0) 推荐(0) 编辑
摘要: SPL标准库的使用 SPL是用于解决典型问题(standard problems)的一组接口与类的集合。 1、SPL提供了很多数据结构类,如SplStack、SqlQueue、SqlHeap、SplFixedArray等 实例代码如下: a、栈 b、队列 c、定长数组 2、PHP链式操作的实现 in 阅读全文
posted @ 2016-12-11 10:27 少年飞刀 阅读(286) 评论(0) 推荐(0) 编辑