Я вижу шаблоны, которые используют шаблон singleton с использованием классов ES6, и мне интересно, почему я буду использовать их, а не просто создавать экземпляр класса в нижней части файла и экспортировать экземпляр. Есть ли какой-то негативный недостаток для этого? Например:
Экземпляр экспорта ES6:
import Constants from '../constants';
class _API {
constructor() {
this.url = Constants.API_URL;
}
getCities() {
return fetch(this.url, { method: 'get' })
.then(response => response.json());
}
}
const API = new _API();
export default API;
Применение:
import API from './services/api-service'
В чем отличие от использования следующего шаблона Singleton? Есть ли причины использовать один из другого? Мне действительно любопытно узнать, может ли первый пример, который я дал, проблемы, о которых я не знаю.
Синглтон:
import Constants from '../constants';
let instance = null;
class API {
constructor() {
if(!instance){
instance = this;
}
this.url = Constants.API_URL;
return instance;
}
getCities() {
return fetch(this.url, { method: 'get' })
.then(response => response.json());
}
}
export default API;
Применение:
import API from './services/api-service';
let api = new API()