|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
Для диплома разрабатываю ИС своей кафедры. Сейчас работаю над клиентоским приложением, выполняющим роль журнала. В приложение могут входят люди под разными ролями(преподы, студенты, замзав кафедры и завкафедры). Естесственно от роли зависит список возможностей авторизированного пользователя. Я думаю как реализовать это лучше в ООП. В данный момент уже начал реализовыватьтакой вариант: Класс Man. К нему композицией присоединяется экземпляр интерфейса DataOperation. Этот интерфейс исполняет класс PrepodDataOperation, от него наследуются StudentDataOperation и ещё два. Также думаю над другим вариантом: Тот же класс Man. Он же исполняет интерфейс DataOperation. От него наследуются классы Prepod, Student и тд. Какой из них лучше? Может у вас есть третье решение? Очень важно мнение опытных людей, так как я такой серьезной разработкой занимаюсь впервые, да ещё и один, так что подсказывать вообще некому. Критерии работы системы: Расширение ролей не планируется. Быстродействие не критично, но необходимо на некотором уровне. Важней всего получается расширяемость функционала. Ну и возможность переноса между платформами(сейчас на .нет). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2008, 19:20 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
ASD.Rapax Сейчас работаю над клиентоским приложением, выполняющим роль журнала. В приложение могут входят люди под разными ролями(преподы, студенты, замзав кафедры и завкафедры). Естесственно от роли зависит список возможностей авторизированного пользователя. Я думаю как реализовать это лучше в ООП. В данный момент уже начал реализовыватьтакой вариант: - проектирование СУБД отдельно и по своим критериям - проектирование клиента по своим - роли и права пользователей вторичны, первична цель приложения, варианты использования и сущности на уровне БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2008, 22:56 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
Petro123 Спасибо. Информационная модель готова: я конечно структуру адекватную предметной области имею, но вот думаю, что она далека от оптимального уровня. По самом вариантам реализации клиента что можете сказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2008, 23:07 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
без кода ваших классов и интерфейсов вам врядли подскажут по "вашим вариантам"... не видно нафига вообще разделение возможностей авторизированного пользователя, в смыле как оно будет использоваться... как тут любят выражаться - "телепатов здесь нету" :) если в общем... вы хорошо подумайте, прежде чем делать дерево классов описывающее вашу "модель"... я вот смутно представляю, зачем это может понадобиться в "клиентским приложением, выполняющим роль журнала"... другое дело когда у вас там море процессов, которые нужно "наглядно" описывать, унифицировать, если оперировать моделью БД не удобно, надо делать какие-то вшение интерфейсы, есть необходимость разделять слои (представление/бизнес-процессы/работа с БД)... при это ООП слой получается оочень не маленький... то есть, ИМХО для небольшого приложения этим не стоит заморачиваться, ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2008, 13:18 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
ASD.RapaxДля диплома разрабатываю ИС своей кафедры. Сейчас работаю над клиентоским приложением, выполняющим роль журнала. В приложение могут входят люди под разными ролями(преподы, студенты, замзав кафедры и завкафедры). Естесственно от роли зависит список возможностей авторизированного пользователя. Я думаю как реализовать это лучше в ООП. Не лучше. Будет очень много букв. И эта идея умрет от ожирения. Вас спасет грамотно сформированная SQL структура таблиц и логика между ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2008, 17:16 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
ASD.Rapax, без ВИ невозможно подсказывать (если ВИ у ложки в виде вилки, то ложка будет другая) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2008, 09:44 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
Роли: 1. Препод. Преподает различные предметы, различным группам, а также различные типы занятий (лектор, лаборант, практик, консультант по ккр). 2. Студент. Обучается в определенной группе различным предметам. 3. Заместитель заведующего кафедры(замзав). "Супер студент". Отслеживает образовательный процесс в полной мере, но ничего не может изменить. Как и у студента - режим ридонли. 4. Заведующий кафедры(звакаф). "Супер препод". Может принимать любые работы у любого студента по предметам заведомой кафедры. Варианты использования: Общие: 0. Авторизация. 1. Открыть журнал (по предмету, группе и подгруппе, типу занятий). 1'. Открывать журнал с личными пометками по оценкам - для препода только 2. Поставить/изменить оценку студента на занятии. - препод, завкаф 2'. Оставлять комментарий по оценке 3. Заполнять сопутствующую занятиям инфу 3. Перекидывать студентов между подгруппами. - для препода только 4. Выгружать часть БД для выполнения работы в филиалах университета 5. Загрузка в БД информации, возникшей в ходе командировки ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2008, 20:52 |
|
Выбор классовой реализации
|
|||
---|---|---|---|
#18+
ASD.RapaxРоли:<...> Варианты использования: Общие:<...> Вот-вот-вот, и дальше в том же духе, админа только забыли :) . Дальше спускаетесь на следующий уровень детализации, кто кого и что CRUD и что при этом происходит. Дальше - аналитическая модель, описываете человеческим языком классы человек-роль-группа-предмет-оценка. Дальше - "динамика", последовательности и алгоритмы, и статика - "информационные" и "инфраструктурные" классы, мэппинги на таблицы БД (если есть возможность делать долго и академически правильно). Можете даже пару паттернов где-нибудь использовать.. Что лучше - решайте сами, критерий качества решения - простота и работоспособность, а не "изящность". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2008, 00:29 |
|
|
start [/forum/topic.php?fid=33&gotonew=1&tid=1548678]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
136ms |
get topic data: |
8ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 294ms |
total: | 521ms |
0 / 0 |