|
|
|||||||||||||||||||||
Программа для тестов - как грамотно подойти к редактированию тестов05.01.2012, 19:14. Показов 5682. Ответов 4
Метки нет (Все метки)
Что я пишу:
Вот пишу приложение для создания тестов, dll с классами самих тестов и приложение, которое будет уже отображать эти тесты, там можно себя проверить например на каком-то тесте, получить баллы за ответы на вопросы теста и прочитать о себе что-то, короче обыкновенные тесты. Программа, которая создаёт тесты должна уметь их редактировать естественно, то есть редактировать сам вопрос, ответы и т.д. Программа, которая будет отображать тесты, она будет грузить тесты из файла и их отображать. Суть вопроса: По идее же в программе отображающей тесты, нежелательно давать вообще возможность изменять вопросы, ответы и т.д. То есть меня почему-то постоянно не покидает мысль, что свойства нельзя делать доступными для изменения. Но тогда, в программе редактирующей тест, для изменения теста, мне придётся создавать новый экземпляр класса теста, заменять в тесте все ответы со старого экземпляра в новый и помещать этот экземпляр в коллекцию, удалив старый. А если сделать свойства доступные для редактирования, то все эти беды отпадают, просто меняю свойство и никаких проблем. То есть мне для избавления от проблем нужно это: Вариант 1
Заменить на это: Вариант 2
Как вообще правильнее делать? Понимаю, моожет вообще кому-то покажется вопрос странным, и кто-то делает вообще как удобнее не задумываясь. Просто хочу всё делать правильно и научиться нормально строить архитектуру приложения. Или не стоит делать общедоступными только поля (ну этого вообще никогда и не делаю), которые могу повредить внутреннюю работу класса, то есть даже нельзя их менять извне через методы и свойства. А те свойства, что несут в себе информацию и не более, можно делать доступными для записи?
0
|
|||||||||||||||||||||
| 05.01.2012, 19:14 | |
|
Ответы с готовыми решениями:
4
Программа создания тестов для проверки знаний студентов Материалы для тестов. Программа распознавания Как задать один таймаут для всех unit тестов? |
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|
| 05.01.2012, 19:35 | |
|
Сделать свойства как для чтения, так и для записи открытыми. После чего реализовать паттерн Посредника. Надеюсь доходчиво объяснил.
1
|
|
|
|
|||||||
| 05.01.2012, 19:55 [ТС] | |||||||
Сейчас попробую оттуда пример скомпилировать и посмотреть в работе, что и как он делает. Добавлено через 8 минут Способ конечно интересный, но я что-то всё равно не пойму, как это применить в моём случае. Создать посредника, который будет передавать изменения в классы? То есть на вход посредник будет получать изменения... Короче что-то толком не понятно.
0
|
|||||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|
| 05.01.2012, 20:26 | |
|
Попробую объяснить на простом примере, чтобы показать суть картины. Есть такая вещь как MVVM (Model-View-ViewModel), если его сравнивать с MVC (Model-View-Controller), то можно груба считать, что Controller - это ViewModel. В нашем же случае это и есть посредник между Model и View. Но особенность MVVM в том, что у него несколько View. (Там есть еще особенности, но в данном случае это не важно)
Вот теперь допустим, что один View для прохождения самого теста, а другой View для редактирования. Причем оба они ссылаются на ViewModel. В таком случае ViewModel разной View предоставляет разный функционал. Это один из вариантов. Есть еще такой способ как "Инъекция зависимости". Суть ее в том, что мы навязываем интересующему нам классу определенный функционал. К примеру в конструктор этого класса передаем интерфейс контроллера с набором определенного функционала из него, при этом запрещаем создание конструктора по умолчанию, обязывая тем самым передать этот интерфейс. P.S. Более подробно можно прочесть в книгах Гаммы и Фаулера.
1
|
|
|
|
||||||
| 05.01.2012, 21:13 [ТС] | ||||||
|
Пока-что у меня получилось
вот что.
0
|
||||||
| 05.01.2012, 21:13 | |
|
Помогаю со студенческими работами здесь
5
Как защитить служебные файлы программы для тестов от удаления и модификации Программа создания и проведения тестов не записывает в XML файл Написание тестов для проекта Хранение базы для тестов Написать программу для создания тестов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|