javascript - Javascript继承单例模式和静态属性和父类
问题描述
我在问自己一个关于 javascript 中的继承和静态属性的问题。
这是我的代码:
export default class BaseService {
static singleton = null;
_instance;
constructor() {
this._instance = axios.create({
baseURL: process.env.REACT_APP_SERVER_URL,
headers: {
'Accept': "application/json",
'Content-Type': "application/json"
}
});
}
}
export default class AService extends BaseService{
constructor() {
super();
}
static getInstance() {
if (AService.singleton == null) {
AService.singleton = new AService();
}
return AService.singleton;
}
}
export default class BService extends BaseService{
constructor() {
super();
}
static getInstance() {
if (BService.singleton == null) {
BService.singleton = new BService();
}
return BService.singleton;
}
}
因此,在我的代码中,每次我需要相应的服务时,我都使用 getInstance() 方法而不是创建 service = new AService()。我做了一些测试,它似乎按预期工作,但我需要一些更有经验的 js 开发人员的确认。
知道 AService 和 BService 是不同的对象类型这一事实意味着当我创建 AService 的实例时,父对象中的单例仅针对所有 AService 对象而不是 BService 设置?
我的问题的第二部分是:对于 es6 类中的单例来说,这是一个很好的模式实现吗?
最后一部分是,如果是这种情况,可以将 getInstance 方法放在父类上,就像在 c# 中我会做这样
getInstance<T>() where T : BaseService
的事情:意味着泛型 T 类型是 BaseService 或从 BaseService 继承。
在此先感谢,我希望我可以理解,在其他情况下请不要犹豫向我询问更多信息。
解决方案
推荐阅读
- java - HA-JDBC 与 Spring Boot JPA 的集成
- jquery - yii2克隆谷歌地图位置输入
- python - 使用 dbpedia sparql 从位置名称获取经纬度坐标
- javascript - 如何通过输入字段发送捕获的网络摄像头图像并保存到服务器
- python - 将带有像素数据的嵌套数组循环到一个数组
- sql - 如何计算时间
- python - 'float' 对象在 apply() 函数中不可下标
- database - 我所有的 Wordpress AJAX 请求都为订阅者返回 html 页面。为什么?
- python - 当我重新回答“while”循环时出现类型错误
- spring-kafka - 使用模式注册表时如何创建/模拟反序列化异常的创建(除了代理和动物园管理员)