Архитектура сложного интерфейса в зависимости от прав пользователя - PullRequest
1 голос
/ 12 февраля 2010

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

Если мы начнем использовать связь слушателя события, это, возможно, приведет к хаосу в коде (множество конструкций IF / SWITCH и т. Д.).

Поэтому я хотел бы спросить, существует ли какая-либо информация о передовых практиках, шаблонах, книгах и полезных примерах.

Спасибо!

1 Ответ

1 голос
/ 12 февраля 2010

Для настройки вида / формы рассмотрите возможность объединения явного View-Model разделения для создания экземпляра вашего пользовательского интерфейса (или изменения видимости существующих элементов управления) с Command Pattern , аннотируя ваши команды с помощью необходимые роли пользователя. Вы должны выяснить, какую поддержку предоставляет ваша платформа, если таковая имеется. Для MS рассмотрим, например, (несколько устаревший) совет AzMan .

Поведенческая настройка: это зависит от того, какую логику вы выполняете. Чем больше ролевых зависимостей вы вводите, тем больше сложность. Вы можете использовать шаблон Command для этого; но на самом деле я не нашел необходимости заходить так далеко (обычно достаточно хорошо контролировать записи в пользовательском интерфейсе).

Вообще говоря, попробуйте сделать проверки доступа декларативными, а не закодированными, как если бы, или операторы switch: элементы аспектно-ориентированного дизайна могут помочь. Что бы вы ни делали, вам (или вашим тестерам) будет весело и исчерпывающе (и утомительно) тестировать ваше приложение!

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