Dev Highlights

Доки по разработке

This project is maintained by teniryte

Паттерн State

Принципы

Пример

interface State {
  think(): string;
}

class HappyState implements State {
  think() {
    return 'I am happy 🙂';
  }
}

class SadState implements State {
  think() {
    return 'I am sad 🙁';
  }
}

class Human {
  private state: State = new HappyState();

  changeState(state: State) {
    this.state = state;
  }

  think() {
    return this.state.think();
  }
}

Практика