@yankoyski

Могут ли в прототипе Класса храниться методы, которые зависят друго от друга?

Могут ли в прототипе класса хранится методы, которые зависят друго от друга?
Например, если один метод удалить, то другой перестанет работать. Это нормальная практика? Или методы в классах должны быть полностью независимы?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
AngReload
@AngReload
Кратко о себе
Даже хорошо. Если методы содержат некоторые одинаковые части, то их следует выделить в отдельный метод.

Несколько надуманный пример
Плохо:
class Human {
  constructor(name) {
    this.name = name
  }
  sayHelloWorld() {
    console.log(this.name + ' says: Hello, World!')
  }
  sayHelloBob() {
    console.log(this.name + ' says: Hello, Bob!')
  }
  sayHelloAlice() {
    console.log(this.name + ' says: Hello, Alice!')
  }
}


Хорошо:
class Human {
  constructor(name) {
    this.name = name
  }
  sayHello(name) {
    console.log(`${this.name} says: Hello, ${name}!`)
  }
  sayHelloWorld() {
    this.sayHello('World')
  }
  sayHelloBob() {
    this.sayHello('Bob')
  }
  sayHelloAlice() {
    this.sayHello('Alice')
  }
}


Если, например, потребуется заменить в классе поле name на firstName и lastName, то во втором варианте нужно будет поменять лишь один метод, а в первом варианте потребуется изменить код в каждом методе.

Есть такой принцип — Don’t repeat yourself
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы