您的位置:首页 > Web前端 > HTML

HTML-ViewParse的Controller层插件开发小结

2013-09-10 00:29 267 查看
HTML-ViewParse (注:文档没有完全跟进,还没正式公开,公开后不会用这个名字)

Controller层是提供给用户最直接的API操作,而原本打算做成单纯的插件的想法在beta版本的开发中遇到了一些问题,如果真的要做AOP开发的话,等于重写了DataManager模块,得不偿失,所以将Controller层的核心深度耦合到DataManager中,这算整个框架的开发过程中唯一的重度耦合点,因为一开始的时候框架就没有为Controller留位置。

Controller层提供了 监听类 ,如果要和Emberjs一样将每种数据对象转化成内部的set、get(defineGetterdefineSetter)来操作,我不得不说DataManager立马会进入大内存时代,而且需要重新设计数据结构并做大量冗余处理,毕竟我需要做到IE6兼容。

所以耦合点就出现在这里,我需要保持原本的原生js对象的操作,又要去判定是否是监听类实例并保持和元素对象一样的操作,为了尽量避免涟漪效应,果断采取了重写监听类的valueOf和toString函数来保证原本的构架在不需改动的情况下继续正常运作。但DataManager模块的代码没法这样,毕竟它控制的是最底层的数据,数据的分析更新都要它来做。

我不得不承认由于监听类的加入DataManager模块变得很搓,判断的量翻了有一倍多,毕竟多了一种数据类型。后期的优化应该就是把监听类的功能分离成计算类,把监听功能从set、get的切面中分离出来,整合入新的监听类中,然后再切面到计算类中,使得模块尽量独立。

这几天课程多得变态,做个TODO的笔记,免得到周六周天拿起来继续做是忘了该干什么。

PS:说道依赖监听,之前着手开发的Binder.js其实就是依赖流程的核心,自动识别错误的、循环的依赖,并做一些妥协的处理,可惜由于硬盘被自己给不小心格式化而夭折了…………现在可能要到后期做一个小插件来实现吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: