Например TDA7294

Форум РадиоКот • Просмотр темы - Уровень доступа + функционал. Алгоритмы
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн июл 28, 2025 04:43:10

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Уровень доступа + функционал. Алгоритмы
СообщениеДобавлено: Чт апр 21, 2011 20:15:05 
Открыл глаза

Зарегистрирован: Пн фев 28, 2011 12:10:08
Сообщений: 46
Рейтинг сообщения: 0
Есть электронный прибор с микропроцессорным управлением.
К прибору могут прикладываться самые разные люди, с разной квалификацией и полномочиями. Для этого я ввожу в систему такое понятие как уровень доступа (Level_0, Level_1, Level_2,..Level_Х)
Но помимо этого у прибора есть определённый функционал, функции которого обрабатывают например клавиатуру, датчики, ЖПС модуль, элементы индикации, исполнительные ус-ва, реле и т.д.
С разных уровней доступа, человек который работает с прибором, может рассчитывать на разный функционал. Другими словами сами логика и правила управления прибором должны учитывать уровень доступа пользователя в системе.
Скажите, как правильнее реализовать (запрограммировать) обработку и функционала и уровня доступа? Я говорю о решении ,которое будет удобно тестировать и отлаживать.

У меня есть идея поместить управление всеми элементами индикации, всеми реле и другими исполнительными устройствами в одну фукнцию, а перед всеми входными воздействиями поставить как своего рода фильтр другую функцию. И тогда уже внутри этих функций, в соответствии с уровнем доступа, принимать решения о функционале в соответствующем уровне.
Что это даст:
а) я пишу функционал так как будто нет никаких уровней доступа (но в тех местах где я что-то получаю либо чем-то управляю из алгоритма, делаю это не напрямую, а через эти функции "пробки")
б) я экономлю на объеме кода (оч. актуально в моем случае)
в) сопровождать/править/отлаживать легче

Не факт что так правильно, но если че поправьте. Спасибо!

---
Не знал куда правильнее запостить. и решил тут разместить. Если че - перенесите по месту.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Уровень доступа + функционал. Алгоритмы
СообщениеДобавлено: Пт апр 22, 2011 06:31:03 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7013
Откуда: Ижевск
Рейтинг сообщения: 0
Двоешник писал(а):
перед всеми входными воздействиями поставить как своего рода фильтр другую функцию.

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

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Уровень доступа + функционал. Алгоритмы
СообщениеДобавлено: Пн апр 25, 2011 02:23:51 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 65
Зарегистрирован: Пн янв 10, 2011 03:06:36
Сообщений: 736
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Я бы в таком случае воспользовался паттерном GoF Strategy.

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

Экземпляры стратегий можно либо статически заготовить заранее, если категорий пользователей немного, либо генерировать при необходимости посредством Class Factory.

Решения вполне типовые, их легко реализовать, протестировать и отладить.

_________________
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y