• / 32

PHP设计模式及在框架设计中的经典应用.ppt

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
PHP 设计 模式 框架 中的 经典 应用
资源描述:

《PHP设计模式及在框架设计中的经典应用.ppt》由会员分享,可在线阅读,更多相关《PHP设计模式及在框架设计中的经典应用.ppt(32页珍藏版)》请在悦读文库上搜索。

1、PHP设计模式及在框架设计中的经典应用,目标,了解设计模式与框架 给出一个可行的学习设计模式的方法 介绍几种常见的设计模式,Agenda,设计模式简述 框架简述 设计模式与框架 软件开发演进过程 框架要解决的问题 Factory Singleton Register Adapter Proxy Active Record MVC,什么是模式,demo for(int i=0;i100;i+) 主谓宾 我爱你 计算机领域:在特定场景下、解决某一类问题的通用方法 模式分类(参见:POSA-1) 架构模式 设计模式 惯用法,为什么要关注设计模式,向专家学习 向历史学习 大型软件设计、实施必备 沟通交。

2、流的语言 薪水,模式四要素,模式名称(pattern name) 交流、标记 问题(problem) 场景、上下文 解决方案(solution) 解决方法、方案 效果(consequences) 模式应用的效果及使用模式应权衡的问题,框架是什么,可复用的面向对象软件系统 应用程序工具箱 api,函数 框架(Framework) 框架 解决特定领域里面具有类似问题的一组相互协作的类 提供解决常见问题的通用组件 为了“复用”已有的解决方案 为了生产效率和可维护性,软件开发演进过程,机器语言、汇编语言 高级语言,面向过程编程 OOP、设计模式、元编程 框架、DSL 智能组件? 只描述需求、软件就给您。

3、实现了?:) 程序员担当“智能,设计自己的框架可能面临的问题,创建大量的复杂对象 比较耗资源的对象只希望初始化一次 动态处理大量的配置 适应不同的数据库 希望延迟初始化数据库连接 日志处理 性能监控,Warning:接下来的代码供示例使用,不具备产品级可用性,场景一,需要在很多函数中调用数据库的操作 假设对数据库的操作已经封装在一个类里面 实现 v0 可以在函数里面调用该类 function foo() $db = new Driver_DB_Mysql(); function bar() $db = new Driver_DB_Mysql(); 问题 如果Driver_DB_Mysql(改名。

4、了呢?参数变化了呢,模式一:Factory,工厂模式V0.1 Impl class DB_Factory public static function getInstance() $db =new Driver_DB_Mysql()() return $db; 使用 function foo() $db = DB_Factory:getInstance() 使用一致的、简单的方式来初始化复杂的对象,场景二,在一个业务流程中要访问数据库资源,发现多次连接数据库,消耗资源。希望只连接接数据库一次 实现v0 全局变量中初始化连接 $db = Db_Factory:getInstance() 业务访问。

5、全局变量 function foo() global $db; 问题 bad smells ,模式二:singleton,单例模式+工厂模式 Impl class DB_Factory private static $_db; private function __clone() ; private function __construct() public static function getInstance() if(! (self:$_db instanceof Driver_DB_Mysql) self:$_db = new Driver_DB_Mysql(); return sel。

6、f:$_db; 使用 function foo() $db = DB_Factory:getInstance(); 实例化一个对象、共享连接,场景三,框架中需要保存一些全局的设置或类的实例,保存框架上下文 实现v0 使用系统$GLOBALS $GLOBALSdebug = xxx; 使用 function foo() if($GLOBALSdebug) . 问题 bad smells 违反职责SRP,模式三:Registry,Registry+Factory Impl class Registry private static $_instance; / private static $_data = array(); private $_data = array(); /感谢一位同学指出 。用实例变量还是静态变量,依赖于整体的设计。需要对应修改set,get方法 . public static function getInstance() . return self:$_instance; . public function set($key, $value) $this-_dat。

展开阅读全文
  悦读文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:PHP设计模式及在框架设计中的经典应用.ppt
链接地址:https://www.studylead.com/p-19353034.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2021 悦读文库网站版权所有

ICP备案号:京ICP备18064502号-1