【发布时间】:2020-12-04 13:12:43
【问题描述】:
我已经在 javascript 中工作了一年多一点,我从不喜欢的一件事是当我的构造函数有 3 个以上的参数并且我必须将它们垂直堆叠以提高可读性,尤其是在使用 angular 时,我将构造函数视为函数(这可能是错误的,我没有受过正规教育)我想保持我的函数和构造函数使用相同的格式以保持一致性。这使我使用非常短的变量名来避免堆叠它们(这对可维护性很糟糕)EX:
constructor(public fb: FormBuilder, private db: DatabaseService){
}
VS:
constructor(
private fs: AngularFirestore,
public fb: FormBuilder,
private db: DatabaseService
) {}
如上所示; 3 个参数,它现在是我一生中见过的最丑陋的东西 LoL。这样做的正确方法是什么?
TL;DR
如何重构我的构造函数以使其更易于维护?
编辑
基于一些 cmets,我认为这值得回应:如果我以客观的方式看待这一点(撇开我自己的观点不谈),传统观点认为,在编写函数时,参数越少越好。如果我们假设构造函数是函数,那么该逻辑必须扩展到依赖注入。
【问题讨论】:
-
鼓励使用短名称的原因是什么?您已经将它们垂直堆叠了,为什么更长的名称会不好?
-
没有什么神奇的方法。在依赖注入的上下文中,有很多参数是可以的。您可以导入
Injector服务并从那里注入所有内容,但没有真正的好处。此外,您可以只导入一项服务,它会执行您的所有业务逻辑。 -
如果是两个,它会修复使它适合一行,我只是想用一个 sn-p 而不是两个来说明我的示例。
-
如果这个构造函数在一个组件中,你可以将你的组件拆分成更小的组件,只做一件事,因此需要更少的依赖。
-
我不明白在构造函数中有多个参数有什么问题?如果这是一个我会理解的功能。
标签: angular typescript class constructor