首页 > 解决方案 > 传递一个可注入服务的参数是一个好习惯吗?

问题描述

将作为可注入服务的参数传递给函数是一种好习惯吗?

大家好,我尝试了一些研究,但我还没有找到上述问题的答案。我正在使用 angular 并面对一些代码,这些代码让我感到困惑要遵循/避免什么做法?

设想:

购物工具.ts

export class ShoppingUtil {

    public static buildShopingNote(material, bService: BService) {
        if (!material) {
            return '';
        }
        return bService.doSomeThing(material);
    }
}

b-service.ts

@Injectable()
export class BService {
    public doSomeThing(input): string {
        let result = 'do something with input';
        return result;
    }
}

我想知道我们是否应该将函数“buildShopingNote”移动到业务服务中,以便在服务初始化时注入 BService?我认为其他编程语言(Java,C ..)的答案是否相同?

任何想法表示赞赏!

标签: typescriptcoding-style

解决方案


如果bService多次重复使用,很明显将服务移动到类的构造函数中。但是,如果只使用一次,则可以选择如何处理。在当前代码中,您甚至不必创建ShoppingUtil类,因为当它只有静态函数时,不需要构造该类。您可以直接从 Util 创建命名空间或导出函数。或移动buildShopingNoteBService


推荐阅读