当前位置: 首页 > news >正文

国家林业工程建设协会网站佛山百度网站快速排名

国家林业工程建设协会网站,佛山百度网站快速排名,wordpress 不支持svg,备案要关闭网站吗PureMVC#xff08;AS3#xff09;剖析#xff1a;吐槽 写在前面 世上没有银弹——不存在适用于所有情况的框架#xff0c;只有适合的框架。再者任何一个好的东西#xff08;语言、框架等#xff09;最终还取决于用的人#xff0c;语言和框架本身并不能保证用户的代码清… PureMVCAS3剖析吐槽 写在前面 世上没有银弹——不存在适用于所有情况的框架只有适合的框架。再者任何一个好的东西语言、框架等最终还取决于用的人语言和框架本身并不能保证用户的代码清晰、解耦等当然它只是尽可能地做到这点。所以记住我写这篇不是为了否定PureMVC相反是为了更好的了解它、使用它。 1. 吐槽一过于强调解耦 PureMVC引入了多种设计模式、消息机制使用观察者模式发布/订阅模式来解耦各个模块它确实做到了这点但是彻底解耦是需要代价的 1.1. Notification消息命名及管理复杂 PureMVC为了做到跨平台使用Notification来实现模块间通信而非Flash原生的EventDispatcher/Event机制。然而Notification使用字符串来定义消息存在以下“问题”。 注Notification并不是Event的替代物。一般情况下Mediator给其视图组件添加Event侦听器按常用方式处理然后给目标Command/Mediator广播Notification。 n 消息ID为字符串虽然字符串可以做到编译时解耦但无法做到消息强类型这样错误将推迟到运行时才能发现。 n 消息命名在一个大型项目中需要一套详细的规则。相信我否则你会吃苦头的。特别是多人参与项目中如果没有按照一定规则命名命名冲突可是会让你调试一阵。但不管你如何定义命名规则【记住】为了模块间解耦Notification发布者应该不关心谁对这个消息感兴趣谁来处理感兴趣者自行注册Mediator通过listNotificationInterests注册、Command通过facade.registerCommand()注册。例如当Proxy中用户信息改变时不应该sendNotification通过“UpdateUserInfoVIew”、“UpdateFriendListView”2个通过来分别更新用户信息、好友列表中对应用户的信息而只是发送一个通知如“UpdateUserInfo”用户信息栏、好友列表都注册这个消息然后分别处理。 n 无法知道Notification的源头。然而这点可以通过在消息体body中增加字段标识如 sendNotification(ApplicationConstants.UPDATE_LEVEL_DATA, { noticeSource: this, levelData: m_levelData } ); noticeSource标识消息来源如果您还想要知道消息传递层次可以用数组表示顺序插入传递者。 1.2. 强松耦合加重通信次数 PureMVC中模块间通信推荐使用Notification机制但是全部使用Notification这种强松耦合模式①强松耦合加重通信次数②带反馈数据的通信加重通信负担。 图UI使用Notification修改Proxy中的数据通信过程 PureMVC中UI修改Proxy的数据并返回后刷新过程Mediator收到UI提交事件后发送Notification消息给CommandCommand进行业务逻辑处理调用Proxy接口修改数据这里还可能涉及到与服务器通信,然后发消息给Mediator刷新Mediator收到消息调用UI接口刷新。 因为都是消息机制整个流程很长而且Proxy中对数据进行操作后发送Notification时可能需要携带修改后的数据可能是来自服务器的数据。这个过程不仅通过次数多而且带反馈数据的消息增加通信负担。另一方面要调试这个过程我们只能在编译的时候找出一步一步的通信流程才能跟踪调试。 2. 吐槽二解耦增加了代码量不方便调试 解耦的同时将使项目修改的复杂程度提高某些解耦的办法还会增加代码量、降低执行效率。PureMVC是一个强解耦的框架其效率本身不是很高函数调用层次较深而有时根本不清楚消息发到了哪里。 PureMVC为了实现解耦增加了代码量不方便调试但哪个MVC框架不是呢这不是PureMVC的问题已经有前辈编写了PureMVC模版如FlashDevelop的模板下载使用模板可以减少手动编写代码量但不能减少类的数量。 有篇文章详细介绍了PureMVC的耦合与解耦耦合与脱耦——深入分析为什么使用pureMVC、接口或抽象基类入口http://bbs.9ria.com/thread-161667-1-1.html 3. 吐槽三过度使用单例模式 单例模式过于万能属于高耦合写法。PureMVC中有4个单例Model、View、Controller、Façade。我们可以通过Model、View、Controller的getInstance()方法获取实例并对他们进行操作。然而Façade是用于管理Model、View、Controller并对外提供接口。如果Model、View、Controller对外不可见为什么要设定为单例而不是Façade的成员变量呢 4. 总结 上面说了一些PureMVC的缺点不过总体来说PureMVC还算一个优秀的框架解耦彻底、灵活性高。 本文转自吴秦博客园博客原文链接http://www.cnblogs.com/skynet/archive/2013/02/17/2914742.html如需转载请自行联系原作者
http://www.zqtcl.cn/news/541045/

相关文章:

  • 合肥建站费用学生做兼职去哪个网站
  • 万户网络做网站如何做网站的企业排名
  • 天猫网站左侧菜单向右滑出的导航菜单阜阳h5网站建设公司
  • 凡科做网站的方法wordpress备份如何安装
  • 网站备案依据四川省广安建设局网站
  • 网站后台管理系统模板品牌营销和品牌推广
  • 网站建设的整个流程图wordpress标题去重
  • 网站手机版模板做拼货商城网站
  • wordpress建自己的网站吗c2c网站的特点
  • 建设网站的成本有哪些龙岩做网站哪家最好
  • wordpress 多站点 子目录安徽望江县城乡建设局官方网站
  • 电子政务网站建设的步骤一般为俱乐部logo免费设计在线生成
  • 网站建设尚品男生学计算机哪个专业最吃香
  • app制作网站收费吗重庆网站产品推广
  • 网站开发预算怎么算厦门建站比较好的公司
  • 涡阳网站优化建设工程公司企业文化
  • 曲靖市住房和城乡建设局网站罗湖区网站公司
  • 购物券网站怎么做wordpress+好用插件
  • 商务网站建设的一般流程是什么?南宁seo费用服务
  • 做企业网站需要什么seminar是什么意思
  • 如何把代码放在网站首页教程深圳建网站哪个公
  • 做的网站第二年续费多钱上传到服务器的网站打开是空白
  • 网站建设花多少钱怎样建移动网站
  • 关键词排名优化网站上海有几个区分别叫什么名字
  • php网站开发基础定制自己的软件
  • 私人装修接单网站wordpress热门文章插件
  • 湘潭网站外包公司宁波妇科医生推荐
  • 企业网站建设可以分为几个层次三亚网站定制
  • 手机网站可以做商城吗如何为公司建立网站
  • 淄博建设银行网站怎么做盗号网站手机