我一直在尝试对此进行研究,但找不到任何建议。我继承了一个代码库,其中团队使用带有静态方法的类,而不是辅助方法的函数。我从未见过采用这种方法并试图决定是否应该让它们返回并使用它们创建函数。我觉得这很不干净,因为您要导入整个类而不只是要使用的功能,所以导入很膨胀?
一种方法比另一种更好吗?
例如,在我不清楚的情况下:
export class StringUtil {
public static alterString(str: string) {
return alteredString;
}
}
Run Code Online (Sandbox Code Playgroud)
与
export function alterString(str: string) {
return alteredString;
}
Run Code Online (Sandbox Code Playgroud)
然后将这样使用:
import { StringUtil } from '../StringUtil';
getString(str: string) {
return StringUtil.alterString(str);
}
Run Code Online (Sandbox Code Playgroud)
与
import { alterString } from '../helper-functions';
getString(str: string) {
return alterString(str);
}
Run Code Online (Sandbox Code Playgroud)
从功能上讲,这两种实现都将产生相同的结果,唯一的区别是对于静态方法,该函数将附加到类的原型上。如果您实际上不需要这种行为(不太可能需要这样做),我会将静态方法保留为单独的函数,因为这对于摇树和代码拆分更好(除非您有很多静态方法,但是这些只会是次要的收获)。在实践中,我发现静态方法通常仅出于两个原因出现:(1)谁使用过Java编写代码的人;(2)一些IDE发出警告,如果它们不使用实例变量,则应将方法标记为静态。
如果只希望具有为一堆静态方法命名空间的功能,则仍然可以通过导出具有所有附加功能的对象来实现。
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |