什么是服务
# 什么是服务
服务是从英文单词Service
翻译过来的。我理解的服务是一个由数据
和方法
组成的对象,可能只有数据
,也可能只有方法
。
提示
所以任何数据都可以是服务,只不过一个标准的服务应该既包含数据,也包含方法。
# 服务与服务工厂
一个典型的例子就是类与实例化对象。实例化对象是一个服务,类则是服务工厂。
class CountService {
public count = 0;
public addOne() {
this.count++;
}
}
const countService = new CountService();
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
上方例子中,CountService
就是服务工厂,countService
则是服务,这个服务有数据count
属性,也有方法addOne
。
服务是由服务工厂生产的。在这里就是由类实例化而来。类的实例化过程是一个由抽象到具体的过程。服务的生产过程也是一个由抽象到具体的过程。
服务也可以只有数据,比如现在有一个字符串变量代表网站的主题颜色,希望以服务的形式来表达。
const theme = "red";
const useValue = (v) => v;
const themeService = useValue(theme);
1
2
3
4
5
2
3
4
5
注意到theme
完全就是一个字符串而已,最终themeService
也只是一摸一样的字符串,那么为什么需要定义一个 useValue 这样的函数呢?
因为想要特意表达出一种抽象到具体的过程。theme
只是服务的定义,themeService
才是真正的服务对象。
和上面的例子做对比来看:
theme
相当于CountService
themeService
相当于countService
useValue
则相当于new
关键字。
提示
这里列举的两个例子只是想清晰的解释服务和服务工厂的区别,以及到底什么是服务。 更多的服务和服务工厂的例子请参考什么是Provider。
编辑 (opens new window)
上次更新: 2023/08/22, 17:17:59