javascript - 使用类与接口来提高内存和性能的成本
问题描述
在为我的 Angular 应用程序编写打字稿时,我可以使用接口或类创建我的域对象。我正在寻找有关使用类方法的实际成本的硬数据。
我知道使用接口不会生成任何 javascript 代码,但使用类会生成。这两种方法都有自动完成和语法检查的好处。
我看到了使用类的更多好处 - 轻松进行单元测试 - 可以将业务逻辑添加到域对象(在使用域驱动设计时听起来不错) - 我们可以强制域对象不可变
所以从逻辑上讲,接口更便宜,但我试图弄清楚使用类的成本是否真的超过了收益。
为此,我想知道其他人在比较实际应用程序中的两种方法时的经验。或者,如果人们知道已经在该领域进行的性能测试。
到目前为止,我发现这个问题(classes vs interfaces in Angular(TypeScript))建议为我的数据模型使用接口,但它没有提供任何硬数据来决定哪种方法最适合我。
解决方案
对于超简单的数据对象,使用接口(或类型)。示例:参数对象、值类型和任何其他不需要任何内置逻辑的对象。
对于更复杂的事情,请使用类。与您获得的好处相比,这种选择的开销是最小的,例如能够将一些简单的逻辑放入类中,因此您无需将其卸载到服务中。类定义需要一点内存,但在运行时,类只意味着对象的特定原型。
我承认这个答案不包括任何实际的性能或统计数据,但这些在很大程度上取决于对象的类型和上下文。
也可以在 Github 上看到这个很棒的评论。
推荐阅读
- php - 如何将数据和字符串上传到 sderver [Swift,Php]
- javascript - 如何使包装在函数中的函数代表父函数返回
- python - 使用 Pycharm 编写 gem5 配置脚本
- android - firebaseRecyclerAdapter 被填满,但不会在对话框中显示任何内容 - Android Studio
- java - Spring MVC中将表单数据中的字符串日期更改为日期日期的解决方案
- git - 删除头部分离的分支 - 我会失去头部吗?
- tensorflow - 为什么 tensorflow 的 FLOPs 是 Caffe 的 macc 的 2 倍?
- php - 用正斜杠连接变量的 PHP 字符串
- javascript - 打印 div 内容 - 崩溃
- python - 加速/改善循环结构/性能