什么是抽象出任何给定的JavaScript框架(jQuery,MooTools等)的最佳方法,它位于框架堆栈的底部?从本质上讲,我希望有一种情况,我可以换出库,只对框架的一层进行更改(例如,不对每个模块进行更改),整个过程可能会重新启动并运行.
因此,每个模块都应调用一个框架函数,然后将其路由到库中.
Dan*_*llo 11
您可能想要使用适配器模式之类的东西.创建您自己的界面,公开您将在应用程序中使用的方法,然后为您想要支持的每个工具包(jQuery,MooTools,YUI等)创建一个适配器.然后,您自己的接口将方法调用路由到特定适配器.
如果您要支持新的工具包,那么您所要做的就是编写一个新的适配器,将您自己的接口中的方法转换为特定工具包的方法.
这是Ext JS目前所做的事情.您可以选择在框架的方法调用后面使用哪个适配器(jQuery,YUI等).例如:Ext.getCmp()
将使用jQuery.$()
何时使用jQuery适配器.但是,它通常不是一个非常简单的一对一映射.
Ext JS开始作为Yahoo UI javascript库的扩展.那时,Ext依赖于YUI的所有低级跨浏览器代码.现在Ext是一个独立的JavaScript库,您可以选择将YUI替换为其他JavaScript库,例如Prototype或jQuery.将低级Ext API映射到其他JavaScript库(或Ext自己的基本库)的源文件称为适配器,它们位于源/适配器子目录中.当您在网站中包含Ext时,您可以选择要使用的适配器.
这将是为...库编写一个库,如果你完全关心性能(为什么不是你?)你应该完全采用不同的方法.库之上的另一个抽象层具有非常不同的方法(特别是当您进入实用程序,动画等时)将非常非常低效且耗时.
不开玩笑,在构建(或更重要的是,维护)像这样的库抽象层之前,即使在任何体面的大小项目中,也需要花费更少的时间来移植代码.
归档时间: |
|
查看次数: |
1075 次 |
最近记录: |