首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建javascript框架时,如何实现库不可知论?

在构建javascript框架时,如何实现库不可知论?
EN

Stack Overflow用户
提问于 2009-11-24 23:30:46
回答 8查看 501关注 0票数 1

我已经开始研究javascript框架的架构。

我不想在这里重复发明轮子,特别是关于浏览器的怪癖,我知道,在某种程度上,我将不得不依赖一些常用的库来处理低级问题。

问题是,我不确定如何依赖外部库来实现某些功能(例如dom操作),而不将其与我的设计捆绑在一起。

实际的例子将有助于提出更好的观点,但我还没有处于设计阶段,我只是试图避免从错误的角度出发。

因此,我正在寻找一些例子、指导方针、最佳实践或可能对这种情况有所帮助的模式。

有什么见解吗?

编辑:澄清一下我为什么要这么做。

我的目标是构建一种类似于应用程序框架的东西,而不是像jQuery这样的大多数传统库。

考虑分层架构,其中的库将适合基础架构层(根据Evans在领域驱动设计中的定义),并处理事件、dom遍历和操作等事情。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-11-24 23:43:14

隔离你的代码:

在其单独的代码部分中,尽可能充分地使用外部库。

以jQuery为例,只需指定一个与jQuery接口的部分,然后在该库的该部分中使用jQuery,就像没有明天一样,并为其提供其他代码独占使用的接口函数。

坦率地说,如果你将一个库集成到你的代码中,并试图使它足够通用,以至于你可以简单地将它与其他东西交换出去,那么你可能会使这个库中立到甚至不包含它的地步。

如果您最终要交换库,那么您可能需要重写,但要做好准备,给与库接口的代码单独的部分,这样您就能够用这些外部库编写不那么通用、功能更强大的代码,从而节省大量的工作。

票数 1
EN

Stack Overflow用户

发布于 2009-11-24 23:35:57

这是一个非常广泛的问题,但如果我是您,我会使用jQuery作为基础。它也是一个非常容易扩展和添加功能的库。

票数 5
EN

Stack Overflow用户

发布于 2009-11-24 23:37:20

我建议拿一份ExtJS的拷贝,看看他们是如何为替换其产品的底层核心提供支持的。您可以使用它们的高级库,例如网格、树等,但选择使用YUI或prototype来代替它们的Ext核心。

这应该会给你一个很好的起点。

编辑以回答评论:

下载ExtJS后,请查看"adapter“文件夹。在那里,您将看到用于使ExtJS与其他库协同工作的各种适配器。您很快就会看到它们是如何定义函数的,而这些函数又利用了适当的底层库。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1790806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档