Уместно ли использовать шаблон наблюдателя? - PullRequest
0 голосов
/ 17 ноября 2010

Поддержка У меня есть класс Java Bean, который строго хранит поля экземпляра:

class College 
{
     building = "Burruss";
     dean = "Mr. Bergess";
     schools[] String = {"College of Engineering", "Business School"};
     valedictorian = "Mr. Smart Guy";
     ...
     ...
     ...
}

Предположим, что для каждого изменения в экземпляре College отправляется сообщение:

class messageSender
{
       ... if (College values have changed)
              Send that instance's fields in byte[] form
}

Предположим, у меня есть Swing GUI (Java), который также проверяет изменения в College

class myGUI
{
      ... if (College values have changed)
              Alert each individual JTextField the updated field
}

Соответствует ли здесь шаблон наблюдателя? Если бы в колледже было 1000 переменных, мне пришлось бы включать метод «notifyObservers ()» при каждом изменении значений полей экземпляра!

Например, для этих 1000 переменных у меня есть 1000 методов установки. Каждый метод установки должен иметь вызов notifyObservers ().

Это правильно или есть лучший способ?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

Если у вас есть класс с 1000 полями, у вас, вероятно, есть другие, более уместные проблемы проектирования.

Это не является ненормальным для каждого из ваших методов изменения поля (установщиков) вызывать notifyObservers().Вы можете попытаться инкапсулировать как можно больше состояния и логики;сокрытие информации - это просто хороший дизайн.

0 голосов
/ 17 ноября 2010

Я думаю, что с Наблюдателем все в порядке, но Слушатель лучше, потому что 1. вы можете создать несколько типов слушателей 2. когда событие происходит, оно передается методу-обработчику слушателя, чтобы он мог знать, что на самом деле произошло. Например, он может содержать одно из 1000 полей, упомянутых в комментарии Марка.

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