прочитав, что Singletons снова и снова являются злыми, я не уверен, как реализовать класс, который обрабатывает «грубые» операции набора данных, который содержит некоторые настройки на сервере.
Набор данных на самом деле не существует на стороне клиента. Клиент видит только свое имя и может инициировать сервер для загрузки, сохранения или удаления своих наборов данных.
Чтобы быть независимым от сервера, экземпляр сервера будет «внедрен». Пользователь может передать имя соответствующего набора данных.
class DataSet {
constructor(name, server) {
this.server = server;
this.name = name;
}
async load() {
this.server.sendLoadCommand(this.name);
}
async delete() {
this.server.sendDeeleteCommand(this.name);
}
// ...
}
В большинстве случаев требуется только один метод за один раз. Тогда объект больше не требуется.
new Dataset("foo").delete();
Поскольку теоретически один и тот же объект может использоваться каждый раз, может использоваться глобальный менеджер (singleton).
const window.dataSetManager = {
async load(name) {
this.server.sendLoadCommand(this.name);
}
async delete(name) {
this.server.sendDeeleteCommand(this.name);
}
// ...
}
window.itemManager.server = server;
Может кто-нибудь сказать мне преимущества одного или обоих способов?
Большое спасибо, Meisenmann