gpt4 book ai didi

Angular - 模型和服务之间的区别

转载 作者:太空狗 更新时间:2023-10-29 18:19:07 25 4
gpt4 key购买 nike

我花时间学习新技术,那项技术是 Angular(不是 JS)所以我有问题。

模型和服务有什么区别?什么时候需要使用模型或服务?我知道我可以将 DI 用于提供程序中的服务和设置并获得单例模式。

以前,我只为业务逻辑编写模型。例如:对数据库的CURD操作,各种验证等等。

但是我混淆了服务和模型,什么时候需要使用服务,什么时候需要使用模型。你能给我看代码并解释一下吗?

非常感谢!

最佳答案

我通常按以下方式处理它,但这完全取决于您如何看待应用程序,我的回答可能不完全符合您的架构决策。

那么让我们从模型开始:

模型就像DTO。通常它只保存一些数据并提供一些方法来处理这些数据。我项目中的模型未标记为 @Injectable(),因此我只是将它们import 并在需要时使用它们。

例子:

export class Car {
name: string;
speed: number;

constructor(name: string) {
this.name = name;
this.speed = 0;
}

accelerate(delta: number): void {
this.speed += delta;
}
}

服务:

服务就像您架构中的。我使用服务来操作数据,例如执行 GET/POST/PUT/DELETE 请求,将响应映射到实际的 Models 等。所有这些都标记为 @Injectable() 并在应用程序中的多个模块之间共享.

例子:

@Injectable()
export class CarService {
getAll(): Observable<Car[]> {
// GET api/cars and map JSON response to the Car[] here
}
}

总结一下:如果某个东西应该操纵属于它的数据,它更可能是一个模型,如果它应该操纵不同的数据集并在不同的模块之间共享它,它更可能是一个服务

但是几年前有一种实践,当 MVC 使用“事件”模型时,它负责将自己的状态与后端同步,但无论如何它通常通过 API 调用将 Service 注入(inject)其中封装到该服务中的逻辑。

UPD:添加了一些代码示例。

关于 Angular - 模型和服务之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48833647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com