gpt4 book ai didi

javascript - Node.js如何实现多态?

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:58 25 4
gpt4 key购买 nike

我正在尝试使用 node.js 和其他相关技术来实现一个应用程序。从 Java 领域出发,多态性很自然,但对于经典程序员来说, Node 的工作方式不同。

应用程序将在用户提供的运行时加载新代码。为了让主要核心使用此代码,“我们”需要就某种约定达成一致。知道 Node 有多新,我对找不到答案并不感到惊讶。问题是这个问题在 JS 中也相当模糊。

要求:

  1. 强脱钩。
  2. 在运行时加载新代码。
  3. 该解决方案应该适用,这样我就可以与浏览器共享尽可能多的代码。

更新:

  1. 我确实摆弄过 duck-typing,我还遇到了 Clojure 在基于协议(protocol)的实现方面的想法。
  2. 我希望能在答案中加入一些代码。

最佳答案

JavaScript,就像大多数其他脚本语言一样(即没有编译时类型检查)通过 duck typing 实现多态性。 .

如果您来自 Java 领域,您可能正在寻找 Dependency Injection通常提供 super 解耦。你或许可以使用谷歌为 Node 找到一个好的依赖注入(inject)框架,比如 this one .

尽管说实话,您可能只制作一个 Javascript/Coffeescript 文件来完成所有连接和配置加载。

由于 Javascript 的灵 active ,几乎所有形式的多态性都已实现(特征、接口(interface)、继承、原型(prototype))。每个都有其优点/缺点,但几乎所有都是运行时检查(如果有的话)而不是编译时间。

我个人可能会使用 Coffeescripts inheritance , traits.jsJavascript's builtin prototype chain .

编辑:但是,由于您在谈论允许用户扩展系统,因此回调和/或自定义事件是首选方法(即高阶函数编程和 event-bus )。如果您正在寻找像插件系统这样的实质性东西,那么 loader-js看起来相当完整(向@Larry Battle 致敬)。

关于javascript - Node.js如何实现多态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11797807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com