我有一组简单的工具方法,没有任何状态可以在应用程序中共享,不需要是单例,也没有任何注入的服务。
使用可注射服务是否有任何优势:
@Injectable()
export class DateService {
public convertStringToDate(input: string): Date {
…
}
public convertDateToString(date: Date): string {
…
}
…
}
Run Code Online (Sandbox Code Playgroud)
与一组简单的导出/导入函数(或基本 JS 模块)?
export function convertStringToDate(input: string): Date {
…
}
export function convertDateToString(date: Date): string {
…
}
…
Run Code Online (Sandbox Code Playgroud)
我正在开发一个混合两种方法的应用程序,我对彼此的优势感到困惑。
a b*_*ver 13
如果服务没有任何状态,则无需创建该服务。
导出函数的优点是,如果未使用其中一个函数,则可以在构建过程中删除代码。
如果您的应用程序有多个代码包并且它们被延迟加载,并且您在不同的包中使用不同的函数,那么这些函数将被这些包延迟加载。
如果您确信您的函数将始终独立使用,那么我将采用第二种方法。例如,RxJS 由于我陈述的原因转向了函数方法。
使用服务的一个论据是测试。如有必要,您可以在测试期间轻松注入虚假服务或代理。但我想这对于转换函数来说几乎没有必要。
| 归档时间: |
|
| 查看次数: |
1632 次 |
| 最近记录: |