我有多个API用于不同的组件,所以我更喜欢做什么,是将所有功能放在一个服务中还是应该创建多个服务。示例 - 组件1使用4个特定功能,总共10个功能。我应该为10个功能创建1个服务,还是两个不同的服务分别由4个和6个功能组成
答案 0 :(得分:2)
要确定服务文件的Angular体系结构,您需要牢记以下几点:
common.svc.ts
文件放入其中。原因是,您可以为所有模块重用该服务。shared
模块中创建服务文件时,请尝试根据它们提供的功能进一步细分。这会将您的长服务文件分解为有意义的小文件,这些文件更易于维护。common.svc
文件,而是提供对所有公共服务的访问。此common.svc
的重要性在于您不必在shared
内注入所有components
服务。只需注入此shared
文件,即可访问所有common.svc
服务。它将充当访问所有shared
服务的网关。现在,您只需在组件中注入 1 shared
即可访问 5 common.svc
服务。 如果您需要对上述任何一点进行更多说明,请与我们联系。
您可以推荐 SOLID设计主体以获得更好的代码,无论您的语言是什么
答案 1 :(得分:1)
这完全取决于你的策略,你应该看到未来并思考所有的可能性。这是我的应用程序中的逻辑。
通常我会为每个模块使用一个特定的服务,例如,如果我们想拥有一所大学的网站
每个模块都有组件和一个服务,对于每个服务,我们将有四个一般操作
所以我将在以下地址中提供服务。
另一个逻辑是在app-root中创建一个名为service的文件夹,并将所有服务放入其中。 (不推荐),其结构如下
最糟糕的逻辑是在app-root中创建一个名为service.ts的文件并粘贴其中的所有服务代码(从不推荐)
答案 2 :(得分:0)
请参阅:Angular Style Guide by Angular.io
您应该遵循SOLID原则,对于您的案例,请遵循单一责任原则
你的课程应该针对单一的功能,即单一的责任,这表明你不应该混合你的所有代码,即在一个类别中的可重复性
示例:客户类处理客户相关活动,不应处理与用户相关的活动
如果你要添加所有不相关的方法,那么你就要对一个课程负责太多。为避免这种情况,您应该通过创建仅包含相关方法的类来分离责任。