2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

面向 JavaScript 的 SOLID 设计原则

  • 2014-01-24
  • 本文字数:849 字

    阅读完需:约 3 分钟

Derick Bailey 是一位专注于 JavaScript 的作者和开发者,他最近在 CodeMash 上发表的演讲中指出:很多开发者都使用过面向对象语言,也有很多开发者使用过JavaScript,但很少有人把面向对象原则和JavaScript 放在一起使用过。在面向对象编程中,我们会把这些基础和原则看做工作的根基,但是从基于类的静态语言转向基于松散的类型而非类的语言时,往往发现同样的原则很难应用。

Derick 宣称,为帮助开发者编写良好且稳定的 JavaScript 代码,有很多很好的原则、实践和模式可供使用,一个例子就是 Robert C. Martin 于本世纪初总结出的 SOLID 原则

Derick 把 SOLID 原则描述为可以很好地配合的五个独立模式,他还使用代码示例依次介绍了所有这些模式,同时看了一些 JavaScript 特有的风格,这些风格使得在 JavaScript 中应用 SOLID 原则与在像 Java 和 C#这样的语言中应用有点不同。

Derick 对这五种原则的定义是:

  • 单一职责原则。当需要做出修改时,原因只能有一个。这有助于帮助开发者理解所构建事物的上下文和职责,并理解何时需要修改。
  • 开放-封闭原则。行为的改变应该可以在不改变现有代码的条件下进行,例如,使用扩展点和创建可以插入的代码。
  • 里氏替换原则。派生的对象或类型必需能够替换其基类。在 Derick 看来,这是开放 - 封闭原则的一个更为专注的版本。
  • 接口隔离原则。不应该强迫客户依赖没有使用的接口。有个问题是,JS 中没有显式的接口,不过我们有些方法绕过。
  • 依赖倒转原则。考虑两个概念,抽象(Abstraction)和所有权(Ownership)。前者指的是我们应该依赖抽象,而不是依赖具体实现;后者指的是低层实现应该依赖高层概念(译者注:关于 Ownership,Derick 在演讲中提到了“细节依赖策略,而策略不依赖细节”)。

在演讲最后,Derick 指出:如果系统中有规模庞大、整整一片的代码块,SOLID 可以帮你把它们拆成单个的部分。尽管不会降低复杂性,但是会帮你创建抽象,并将细节组织为我们可以理解的更大的概念。

译者注:演讲相关的 Slides 和 JavaScript 代码下载

查看英文原文: SOLID Design Principles for JavaScript

2014-01-24 08:246194
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 150.3 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

驳“AI 泡沫论”:一场被误读的、正在进行中的产业结构性调整

Baihai IDP

人工智能 AI AIGC LLM AI泡沫

5个实用的技巧,可以有效提升YashanDB的安全性和隐私

数据库砖家

5个提升YashanDB安全性的重要措施

数据库砖家

AI质检与MES系统深度融合:构建智能制造质量管控新模式

万界星空科技

mes 万界星空科技mes 智能化MES AI智能化MES AI质检

5个关键指标评估YashanDB数据库的表现

数据库砖家

5个决策帮助选择合适的YashanDB数据库配置

数据库砖家

区块链技术解决跨境交易的核心问题

北京木奇移动技术有限公司

区块链技术 软件外包公司 跨境交易

5个影响YashanDB数据库性能的关键因素

数据库砖家

5个原因选择YashanDB支持您的企业增长

数据库砖家

5个关键因素助您成功实施YashanDB数据库

数据库砖家

面向企业构建科学完善的财务报告解决方案

智达方通

企业管理 全面预算管理 财务管理

黑龙江 2025 年二级等保测评备案流程与测评标准解析

等保测评

理想照进现实:零碳园区面临的挑战与破局之道

西格电力

绿色低碳 新能源 碳实践 零碳园区 低碳转型

5个关键指标衡量YashanDB的数据库表现

数据库砖家

5个关键指标评估YashanDB数据库性能表现

数据库砖家

5个理由选择YashanDB用于您的项目

数据库砖家

5个实用建议帮助您快速上手YashanDB

数据库砖家

5个关键因素决定YashanDB数据库的选择

数据库砖家

5个实用技巧优化YashanDB数据库的存储管理

数据库砖家

5个有效方法提升YashanDB数据库的安全性

数据库砖家

5个最常见的YashanDB数据库配置误区

数据库砖家

超越环保:零碳园区的经济与社会价值论

西格电力

绿色低碳 新能源 能源经济 零碳园区 低碳转型

5个应对YashanDB升级挑战的策略

数据库砖家

5种方式提升YashanDB的使用体验

数据库砖家

大数据-125 - Flink 实时流计算中的动态逻辑更新:广播状态(Broadcast State)全解析

武子康

Java 大数据 flink spark 分布式

5个提升YashanDB用户体验的关键建议

数据库砖家

5项指标助您评估YashanDB数据库的性能

数据库砖家

CST多物理场分析的应用-CST软件达索官方代理

思茂信息

cst CST软件 CST Studio Suite

5个理由使用YashanDB驱动业务增长

数据库砖家

5个主要因素影响YashanDB的选择

数据库砖家

哈尔滨等保测评费用补贴与新兴技术合规要求(2025 版)

等保测评

面向JavaScript的SOLID设计原则_JavaScript_Jan Stenberg_InfoQ精选文章