Лучший подход для методов получения, возвращающих экземпляр класса - PullRequest
1 голос
/ 05 августа 2020

Итак, я изо всех сил пытаюсь понять, какой способ возврата экземпляра класса в методах получения лучше

Вот версия 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). Однако я не смог найти ни плюсов, ни минусов каждого подхода.

Кто-нибудь может подтвердить, что один из этих подходов можно рассматривать как плохую практику? Возможно, у одного из этих методов есть проблемы с производительностью ...

Также, насколько я понимаю, при экспорте экземпляра класса он становится синглтоном, который также является анти-шаблоном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...