gpt4 book ai didi

Angular 2 (ng2) - Service vs util,什么时候使用哪个?

转载 作者:太空狗 更新时间:2023-10-29 17:33:52 26 4
gpt4 key购买 nike

在查看了许多不同的论坛帖子和示例项目之后,人们似乎会在服务或实用程序之间做出选择以获得相同类型的功能。到目前为止,我读到的是人们说服务更好,因为依赖注入(inject)会使测试更容易。其他人说实用程序更好,因为它们更快。我想知道关于何时使用服务与实用程序是否有任何类型的首选规则,为什么?

这是一个从加载的数据中提取表列的示例:

服务

export class TableService {
getColumns(data:Array<any>):Array<GridColumnInterface> {
let columns:Array<GridColumnInterface> = [];

data.forEach((column:any, index:number) => {
columns.push({
headerName: column.name,
field: String(index),
hide: column.isHidden,
class: 'text-center'
});
});

return columns;
}
}

效用

export class TableUtil {
static getColumns(data:Array<any>):Array<GridColumnInterface> {
let columns:Array<GridColumnInterface> = [];

data.forEach((column:any, index:number) => {
columns.push({
headerName: column.name,
field: String(index),
hide: column.isHidden,
class: 'text-center'
});
});

return columns;
}
}

那么你会选择哪个,为什么?

最佳答案

如果您关心可维护性和可测试性,请使用服务。

如果您遇到分析显示使用该服务占用大量 CPU 资源的情况,请切换到 util-class 并进行基准测试以获得正确的数字,您的应用程序使用 util-classes 运行速度有多快。如果这对您的应用程序产生了影响(顺便说一句,极不可能),则将该服务类更改为实用程序类。我会考虑其他一切过早的优化。

我相信,当您能够减少您的应用程序向服务器发出的请求数量时,它将为您的应用程序的用户体验做出更多贡献,然后您将永远能够使用 service 与 util 进行比较。

Angular2 AoT 无论如何都会将 DI 代码转换为静态代码,因此性能提升的潜力不大。

关于Angular 2 (ng2) - Service vs util,什么时候使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40093089/

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