Итак, я изо всех сил пытаюсь понять, какой способ возврата экземпляра класса в методах получения лучше
Вот версия 1
Продукты. js
class Products {}
module.exports = {Products}
Цена. js
class Price {}
module.exports = {Price}
индекс. js
const { Products} = require('./Products.js')
const { Price} = require('./Price.js')
class General {
get products() {
return new Products()
}
get price() {
return new Price()
}
}
Вот версия 2
Продукты. js
class Products {}
module.exports = new Products()
Цена. js
class Price {}
module.exports = new Price()
index. js
const Products = require('./Products.js')
const Price = require('./Price.js')
class General {
get products() {
return Products
}
get price() {
return Price
}
}
Глубоко внутри я чувствую, что правильнее инициализировать экземпляр класса только тогда, когда я пытаюсь получить к нему доступ (версия 1). Однако я не смог найти ни плюсов, ни минусов каждого подхода.
Кто-нибудь может подтвердить, что один из этих подходов можно рассматривать как плохую практику? Возможно, у одного из этих методов есть проблемы с производительностью ...
Также, насколько я понимаю, при экспорте экземпляра класса он становится синглтоном, который также является анти-шаблоном