Показать сообщение отдельно
  #22  
Старый 10.10.2013, 20:42
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Фух, вроде форум наконец-то заработал, а я понял, что писать, чтобы не получилась отписка.

Цитата:
Сообщение от Uniq!
Как это сейчас: индекс f относится к формам.
На самом деле префикс "F" -- признак приватных полей классов. Так и у Borland, и у остальных нормальных людей. А формы чаще всего называются с постфиксом "Form". Это так, к слову.

Цитата:
Сообщение от Uniq!
fNewTicket - Вызывается по нажатию кнопки с fMain. Тут три кнопки для заполнения данных (см. выше) и конечная кнопка bTicketSave
Во, вот тут нарушение декомпозиции.

Все предыдущие советы я писал, исходя из классического интерфейса, когда основу главной формы составляет грид со списком объектов, над которым красуется классическая панель инструментов: вставка, редактирование, удаление, проводка, списание, печать и т. п. Действия, требующие отображения содержимого и/или ввода данных, реализуются как "действие диалогом", -- например, "редактирование диалогом".

Диалог во всех случаях -- самый обычный, с кнопками "OK" и "Отмена". Нашкодил пользователь в диалоге, нажал "OK", -- действие диалога зафиксировалось (вызвался метод Post), а если нашкодил и нажал "Отмену" -- действие отменилось (вызвался метод Cancel). "Действие диалогом" хорошо абстрагируется и обычно реализуется в диалоге-предке, от которого наследуются диалоги конкретных действий.

Само собой, панелей инструментов в таком диалоге нет, а если есть -- то только для деталей, повторяющих шаблон "форма с данными -- действие диалогом".

С этой точки зрения сохранение результатов редактирования кнопкой "Сохранить" в диалоге ввода -- нарушение шаблона "действие диалогом", то есть нарушение декомпозиции. Форма-владелец данных не должна вызывать "волшебный диалог", делающий с ее данными не пойми что, а наоборот, на правах хозяйки она должна самостоятельно редактировать данные, по мере надобности призывая себе помощников-диалогов.

Я не совсем в курсах насчет "паттернов" (шаблонов проектирования) и их терминологии, поэтому может оказаться, что описанное тут "действие диалогом" по-умному называется как-то по-другому. Если узнаешь, отпишись.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием