Плохо:
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