powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Просачивание бизнес-логики в уровень представления
4 сообщений из 4, страница 1 из 1
Просачивание бизнес-логики в уровень представления
    #34980325
Hey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не является секретом мысль о том, что интерфейс пользователя не должен зависеть от бизнес-логики. Однако как быть в том случае, когда поведение интерфейса все-таки должно зависеть от логики, например включение/отключение свойства Enable кнопки ОК в случае если поле textBox представляющее некий элемент пустое, а логика не позволяет присваивать ему пустую строку ?
Например окно для заполнения данных о пользователе. Помимо запрета на пустые строки в ФИО там может присутствовать требование на наличие хотя-бы одного контактного телефона, e-mail и пр. Или даже хитрее - если не введен ни один телефон, то обязателен ввод e-mail'а, и наоборот.

Этак вся логика инвариантов класса плавно переедет в Windows-форму.

А все время иметь доступную кнопку ОК не хочеться :)
...
Рейтинг: 0 / 0
Просачивание бизнес-логики в уровень представления
    #34980336
Фотография grexhide
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heyНе является секретом мысль о том, что интерфейс пользователя не должен зависеть от бизнес-логики.
Очень даже является. Как это так - интерфейс пользователя не зависит от бизнес-логики?
Это что вообще такое? Две системы в двух параллельных мирах и пространственно-временных континумах?

hey Однако как быть в том случае, когда поведение интерфейса все-таки должно зависеть от логики, например включение/отключение свойства Enable кнопки ОК в случае если поле textBox представляющее некий элемент пустое, а логика не позволяет присваивать ему пустую строку ?

Откровенно идиотское (извинения тут, увы, не уместны) эргономическое решение.
Поясняю на пальцах.

Пользователь не ввел это самое значение. Ну забыл, или данных нет.

А программа тупо ему не подсказывает, но и не дает нажать кнопку Ок (а должна бы понажатию подписать поле красным и сфокусировать в него).

Пользователь мечется в непонятках, нервничает, сердится, чувствует себя полным кретином, пытаясь оббежать глазами весь экран в поиске, и откровенно не понимая, что от него хотят.

И? Я бы за такой "дизайн".... короче, опустим эпитеты.


heyНапример окно для заполнения данных о пользователе. Помимо запрета на пустые строки в ФИО там может присутствовать требование на наличие хотя-бы одного контактного телефона, e-mail и пр. Или даже хитрее - если не введен ни один телефон, то обязателен ввод e-mail'а, и наоборот.

Поля, в которые требуется внести данные - обычно помечаются. К примеру - символом * или
цветом/жирностью подписи. Акцентуация внимания - RTFM.

heyЭтак вся логика инвариантов класса плавно переедет в Windows-форму.
Инвариантов класса? Очередное очень умное слово, почерпнутое из анналов J2EE и прочих подобных
студенческих методичек?
А почему не трансфлуентность класса, квазиперсистентность или метадетерминированность?
Эти "свойства" класса не должны влиять на бизнес логику, нет?

-

По сути же я тебе скажу просто и недвусмысленно. Все эти примитивные (и не очень) проверки (или
как в модных книжках принято говорить - валидации) - нужно делать и на server-tier и на client-tier.
Сначала на server, а потом на client. Не наоборот.

На клиенте - хоть вручную, хоть через какой словарь (продвинутый, или, как обычно - не очень).

heyА все время иметь доступную кнопку ОК не хочеться :)

А надо! Надо, Вася, надо!

Прочитай хотя бы пару тройку умных (или хоть каких-нибудь) книг по эргономике UI, да посмотри как
у нормальных людей это делается.

-

P.S. А вопрос то был в чем? Я вот так и не понял.
...
Рейтинг: 0 / 0
Просачивание бизнес-логики в уровень представления
    #34980791
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grexhide heyНе является секретом мысль о том, что интерфейс пользователя не должен зависеть от бизнес-логики.
Очень даже является. Как это так - интерфейс пользователя не зависит от бизнес-логики?
Это что вообще такое? Две системы в двух параллельных мирах и пространственно-временных континумах?

я делаю. чтобы интерфейс не слишком зависел.
Есть форма для показа таблицы, форма для редактирования отношения n к m,
форма для редактирования отношения 1 к n, форма редактирования строки.
Больше ниче нету

А начальство ругается, что не удобно и заставляет делать, чтобы зависел.
прямо страна непреодолимых противоречий.
...
Рейтинг: 0 / 0
Просачивание бизнес-логики в уровень представления
    #34980810
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hey

Этак вся логика инвариантов класса плавно переедет в Windows-форму.

А все время иметь доступную кнопку ОК не хочеться :)
если не хочется, то переедет.
Добавить в форму соответствующие правила и настройки, причем они, наверно, должны пользоваться
чемто безличным - скажем номерами поля ввода.
кнопка окей дисаблед тогда и только тогда, когда, скажем, 2е поле ввода пусто
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Просачивание бизнес-логики в уровень представления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]