Классы свойств

Может показаться, что классы свойств способны размножаться до бесконечности. Несомненно, так бы оно и было, если бы мы создавали класс свойства для каждого класса объекта предметной области. В большинстве случаев вместо прямого обращения к объекту предметной области Form предоставляет несколько свойств, представляющих разные аспекты объекта предметной области. Например, форма посетителя предоставляет объекты StringProperty для имени и фамилии посетителя, адреса, города и почтового индекса, а также объект DateProperty для хранения срока пребывания в клубе.

К некоторым объектам предметной области обращаться подобным способом неудобно. Соединение ползунка, управляющего растяжением изображения по заданной геометрической области, потребует более полудюжины свойств. Заставлять объект Form жонглировать таким количеством свойств ради простого перетаскивания ползунка было бы сомнительно. Добавить новый тип свойства? Смахивает на неконтролируемое размножение типов.

Вместо этого мы пошли на компромисс и ввели объектное свойство для хранения произвольных объектов Java. Этому предшествовала оживленная дискуссия, с выражениями типа «скользкий путь» и «свалка объектов». К счастью, мы вовремя подавили свой порыв — вероятно, это была одна из вредных сторон языков с проверкой типов.

Для обработки действий было создано «командное свойство», инкапсулирующее объекты команд, а также определяющее их доступность. Таким образом, мы можем связать объект командного свойства с кнопкой GUI, используя изменения в состоянии свойства для установления или снятия блокировки кнопки.

UI-модель позволяет ограничить Swing уровнем UI. Кроме того, она обладает огромными преимуществами в области модульного тестирования. Наши модульные тесты могут управлять UI-моделью через свойства и делать предположения относительно изменений свойств, вызванных этими действиями.

Таким образом, сами формы не визуальны, но они предоставляют в распоряжение пользователя именованные свойства с сильной типизацией. Эти свойства где-то должны связываться с визуальными элементами. Этой задачей занимается уровень привязок.

Related posts:

  1. Формы
  2. Пользовательский интерфейс и его модель
  3. Свойства

Подпишитесь на рассылку по почте:

Введите свой адрес почты, чтобы получать уведомления о новых статьях.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>