首页 > 解决方案 > 使用类与接口来提高内存和性能的成本

问题描述

在为我的 Angular 应用程序编写打字稿时,我可以使用接口或类创建我的域对象。我正在寻找有关使用类方法的实际成本的硬数据。

我知道使用接口不会生成任何 javascript 代码,但使用类会生成。这两种方法都有自动完成和语法检查的好处。

我看到了使用类的更多好处 - 轻松进行单元测试 - 可以将业务逻辑添加到域对象(在使用域驱动设计时听起来不错) - 我们可以强制域对象不可变

所以从逻辑上讲,接口更便宜,但我试图弄清楚使用类的成本是否真的超过了收益。

为此,我想知道其他人在比较实际应用程序中的两种方法时的经验。或者,如果人们知道已经在该领域进行的性能测试。

到目前为止,我发现这个问题(classes vs interfaces in Angular(TypeScript))建议为我的数据模型使用接口,但它没有提供任何硬数据来决定哪种方法最适合我。

标签: javascriptangulartypescript

解决方案


对于超简单的数据对象,使用接口(或类型)。示例:参数对象、值类型和任何其他不需要任何内置逻辑的对象。

对于更复杂的事情,请使用类。与您获得的好处相比,这种选择的开销是最小的,例如能够将一些简单的逻辑放入类中,因此您无需将其卸载到服务中。类定义需要一点内存,但在运行时,类只意味着对象的特定原型。

我承认这个答案不包括任何实际的性能或统计数据,但这些在很大程度上取决于对象的类型和上下文。

也可以在 Github 上看到这个很棒的评论


推荐阅读