传递可注入服务的参数是一个好习惯?

时间:2019-03-01 04:59:24

标签: typescript coding-style

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

大家好,我尝试了一些研究,但仍无法找到上述问题的答案。 我正在使用angular并面对一些代码,这些代码使我感到困惑,该遵循/避免哪种做法?

场景:

shopping-util.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 ..),我认为答案是相同的吗?

任何想法都值得赞赏!

1 个答案:

答案 0 :(得分:0)

如果您多次重复使用bService,则很明显要将服务移至类的构造函数。但是,如果仅使用一次,则可以选择处理方式。在当前代码中,您甚至不必创建ShoppingUtil类,因为在只有静态函数的情况下不必构造该类。您可以创建名称空间,也可以直接从Util中导出函数。或将buildShopingNote移至BService