![]() |
|||||||||||||||||||||
1 | |||||||||||||||||||||
Программа для тестов - как грамотно подойти к редактированию тестов05.01.2012, 19:14. Просмотров 4318. Ответов 4
Метки нет Все метки)
(
Что я пишу:
Вот пишу приложение для создания тестов, dll с классами самих тестов и приложение, которое будет уже отображать эти тесты, там можно себя проверить например на каком-то тесте, получить баллы за ответы на вопросы теста и прочитать о себе что-то, короче обыкновенные тесты. Программа, которая создаёт тесты должна уметь их редактировать естественно, то есть редактировать сам вопрос, ответы и т.д. Программа, которая будет отображать тесты, она будет грузить тесты из файла и их отображать. Суть вопроса: По идее же в программе отображающей тесты, нежелательно давать вообще возможность изменять вопросы, ответы и т.д. То есть меня почему-то постоянно не покидает мысль, что свойства нельзя делать доступными для изменения. Но тогда, в программе редактирующей тест, для изменения теста, мне придётся создавать новый экземпляр класса теста, заменять в тесте все ответы со старого экземпляра в новый и помещать этот экземпляр в коллекцию, удалив старый. А если сделать свойства доступные для редактирования, то все эти беды отпадают, просто меняю свойство и никаких проблем. То есть мне для избавления от проблем нужно это: Вариант 1
Заменить на это: Вариант 2
Как вообще правильнее делать? Понимаю, моожет вообще кому-то покажется вопрос странным, и кто-то делает вообще как удобнее не задумываясь. Просто хочу всё делать правильно и научиться нормально строить архитектуру приложения. Или не стоит делать общедоступными только поля (ну этого вообще никогда и не делаю), которые могу повредить внутреннюю работу класса, то есть даже нельзя их менять извне через методы и свойства. А те свойства, что несут в себе информацию и не более, можно делать доступными для записи?
0
|
|
05.01.2012, 19:14 | |
Программа создания тестов для проверки знаний студентов Материалы для тестов. Программа распознавания Как задать один таймаут для всех unit тестов? Как защитить служебные файлы программы для тестов от удаления и модификации
__________________
4
Помогаю в написании курсовых работ и дипломов здесь. Записывайтесь на профессиональные курсы С#-разработчиков |
|
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
|
|
05.01.2012, 19:35 | 2 |
Сделать свойства как для чтения, так и для записи открытыми. После чего реализовать паттерн Посредника. Надеюсь доходчиво объяснил.
1
|
![]() |
||||||
05.01.2012, 19:55 [ТС] | 3 | |||||
Неа, на своём примере, что-то не ясно как применять. Там у меня есть ещё класс самого теста, вот он будет сохраняться в файл:
Сейчас попробую оттуда пример скомпилировать и посмотреть в работе, что и как он делает. Добавлено через 8 минут Способ конечно интересный, но я что-то всё равно не пойму, как это применить в моём случае. Создать посредника, который будет передавать изменения в классы? То есть на вход посредник будет получать изменения... Короче что-то толком не понятно.
0
|
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
|
|
05.01.2012, 20:26 | 4 |
Попробую объяснить на простом примере, чтобы показать суть картины. Есть такая вещь как 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 [ТС] | 5 | |||||
Пока-что у меня получилось
вот что.
0
|
05.01.2012, 21:13 | |
Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь. Программа создания и проведения тестов не записывает в XML файл Написание тестов для проекта Хранение базы для тестов Написать программу для создания тестов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |