php设计模式简要总结

php设计模式简要总结

ID:35294871

大小:1.08 MB

页数:13页

时间:2019-03-23

php设计模式简要总结_第1页
php设计模式简要总结_第2页
php设计模式简要总结_第3页
php设计模式简要总结_第4页
php设计模式简要总结_第5页
资源描述:

《php设计模式简要总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Php基本设计模式:工厂单例注册1.工厂方法或类生成对象而不是随意去new对象2.单例是类的对象只创建一个3.注册即全局共享和交换对象4.适配器模式先写一个数据库接口包括connectquery和close然后在mysql.php,mysqli,pdo中分别implements他这样调用的时候是类名不同但是操作接口是一致的5.策略模式:将一组特定的行为和算法封装成类以适应特定的上下文环境例子:电商网站,针对男女客户不同跳转到不同的商品目录。传统的做法是ifelse硬编码。。。增加或修改的话要改很多策略

2、模式就是新增或修改策略即可。首先写一个接口strage。然后写针对男性和女性用户的实现分别implementstrage即femaleStragemaleStrage最后是调用先写一个class这个class有set方法外部根据femle还是male来newfemalestrage还是malestrageClass根据传来的strage去调用具体实现6.数据对象映射模式把对象和数据存储映射起来对对象的操作映射为对数据存储的操作面向对象7.观察者模式一个对象状态发生改变依赖他的对象全部会收到通知并自动更

3、新比如一个事件发生要执行一串更新传统方式是在代码后加入逻辑处理但是难以维护观察者模式低耦合非入侵式的通知与更新机制观察者更新时操作啥updateAdd是添加观察者notify是当事件发生时更新观察者的接口一个观察者事件事件发生调用notify去处理为事件添加观察者调用trigger个人理解:观察者是处理一个事件发生后更新与此事件发生相关的一些操作这样做的好处是不用ifelse逻辑那样比较混乱事实上还是事件发生调用notify挨个去处理每个事件8.原型模式用来创建对象。先创建好一个原型对象然后clone

4、原型创建新的对象免去类创建时重复的初始化操作。适用于大对象的创建。因为创建大的开销比较大这样可以直接内存copy首先创建然后clone9.装饰器模式传统方式重写draw调用父类方法首先定义装饰器的接口包括before**和after**;然后在需要的类中定义一个方法addDecorator添加装饰器(array)定义before**和after**;分别循环每个装饰器,执行装饰器里定义的before和after方法;在代码之前和之后添加$this->before**和$this-》after**使用时

5、实现decoratator接口使用前添加进decoratator数组即可10.迭代器模式classAllUserimplementsIterator{protected$ids;protected$data=array();protected$index;function__construct(){$db=Factory::getDatabase();$result=$db->query("selectidfromuser");$this->ids=$result->fetch_all(MYSQLI

6、_ASSOC);}//获取当前元素functioncurrent(){$id=$this->ids[$this->index]['id'];returnFactory::getUser($id);}//获取下一个元素functionnext(){$this->index++;}//用来验证当前是否还有下一个元素functionvalid(){return$this->indexids);}//重置整个迭代器functionrewind(){$this->index=0;}/

7、/在迭代器中的位置functionkey(){return$this->index;}}代理模式例如通过操作对象实现对数据的操作不用关心数据具体存在哪个数据库的哪张表中。代理模式作用和父类、接口组合的作用类似,都是为了聚合公用部分减少公共部分代码。表达含义类似于接口has-a少用继承多用组合降低耦合度

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。