Java при условии наблюдаемого не очень хорошая практика - PullRequest
0 голосов
/ 11 марта 2020
public void update(Observable obs, Object arg) 
{
  if (obs instanceof WeatherData) {
  WeatherData weatherData = (WeatherData)obs;
  this.temperature = weatherData.getTemperature();
  this.humidity = weatherData.getHumidity();
  display();
  }
 }

Приведенный выше фрагмент кода взят из Head First Design Patterns . Событие будет срабатывать для каждого происходящего изменения, и оно будет разослано всем наблюдателям независимо от того, ожидают они того или нет. Блок if позволяет коду решать, какие события обрабатывать.

Так что создание наблюдаемого для каждого такого сценария будет хорошей практикой, верно?

1 Ответ

1 голос
/ 11 марта 2020

Так что создание наблюдаемого для каждого такого сценария будет хорошей практикой, верно?

Да! Я защищал этот подход много раз, например здесь , здесь и здесь . Меня сбивает с толку, почему люди так часто применяют шаблон Observer только с одним классом событий, а затем пытаются пропустить различные типы событий. Обязательно создайте новые классы событий!

...