我有一组简单的工具方法,没有任何状态可以在应用程序中共享,不需要是单例,也不需要任何注入的服务。
使用注射服务有什么优势吗:
@Injectable()
export class DateService {
public convertStringToDate(input: string): Date {
…
}
public convertDateToString(date: Date): string {
…
}
…
}
与一组简单的导出/导入函数(或基本 JS 模块)相比?
export function convertStringToDate(input: string): Date {
…
}
export function convertDateToString(date: Date): string {
…
}
…
我正在开发一个混合这两种方法的应用程序,但我对彼此的优势感到困惑。
如果服务没有任何状态,则无需创建该服务。
导出函数的优点是,如果不使用其中一个函数,则可以在构建过程中删除代码。
如果您的应用程序有多个代码包,并且它们是延迟加载的,并且您在不同的代码包中使用不同的函数,那么这些函数将随该代码包一起延迟加载。
如果您确信您的函数将始终独立使用,那么我会采用第二种方法。 RxJS 例如由于我所说的原因,转向函数方法。
使用服务的一个论据是测试。如有必要,您可以在测试期间轻松注入虚假服务或代理。但我想这对于转换函数来说几乎没有必要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)