|
Программирование >> Проектирование интерфейса пользователя
5: 6: 7 Call S.WriteToFile { Test.txt ) Call S.ReadFromFile ( Test.txt ) MsgBox S.Strings (1) End Sub I Строка 2 листинга 22.4 содержим укцию объявления и создания I объекта S класса strings. Строки 3 и 4 тестируют правильность выполнения функции IndexOfName, Property-метода Let Values и обработчика ошибок в нем, поскольку выражения содержат обращения к элементам коллекции, которых еще нет (в этом случае элементы будут созданы). Строка 5 проверяет средства записи данных в файл, а строка 6 -их чтения. Строка 7 позволяет увидеть содержимое считанного из файла элемента коллекции с номером 1 в окне сообщения. Тестовый код способен выявить немало ситуаций, о которых вы даже не подозревали. Применение класса Strings Класс Strings может оказаться особо нужным в тех случаях, когда необходимы средства организации доступа к значениям по ключевым именам. В Windows, например, все еще находят широкое применение файлы INI, содержащие информацию о параметрах настройки приложений. Ассоциативный массив в виде объекта коллекции - удобный способ хранения данных, позволяющий обращаться к элементам информации как по индексам, так и по ключевым именам. В главе 8-й час. Декомпозиция задач вы изучили процедуры Get Settings и SaveSettings, позволяющие выполнять чтение реестра и запись в реестр. Эти методы работы с реестром более предпочтительны для сохранения информации о приложении, чем использование lNI-файлоБ. Класс Strings полезен для хранения ассоциативных данных, которые должно отслеживать приложение. Однако не рекомендуется использовать класс Strings для работы с реестром вместо специально созданнхх для этой цели методов. Для чтения и записи INI-файлов существуют API-процедуры - Get-PrivateProfileString И WritePrivateProfileString. Как уже отмечалось, предпочтительнее работать с реестром, в этом случае указанные API-процедуры не понадобятся. Резюме На этом занятии на примере класса strings вы изучили способы построения коллекций, обеспечивающих возможности обращения к элементам данных по индексным значениям и ключевым именам. Что еще более важно - вы усвоили основные аспекты объектно-ориентированного проектирования и методы повторного применения существующего кода при построении новых классов. Достаточно приложить небольшие усилия - и за счет добавления простых проверенных решений класс приобретает новые полезные качества. Вы убедились, как включение существующего кода в состав нового класса помогает добиться приемлемых результатов с минимальными затратами: так, при построении класса Strings мы воспользовались ранее созданным классом FileStream, обеспечивающим средства выполнения файловых операций. Приложения, которые имеют дело с парами данных, состоящими из ключа и значения, широко используются в среде Windows. Реестр Windows - это файл данных, содержащий информацию об установленных в системе приложениях и состоящий из пар ключевых имен и соответствующих им значений различных типов. и другие конфигурационные INI-файлы имеют аналогичную структуру. Класс strings наверняка найдет применение и в ваших собственных разработках. При создании новых классов стремитесь к максимальной простоте. Если, имея готовый класс, вы хотели бы расширить его функциональные возможности, постройте новый класс, включив в состав интерфейса атрибуты существующего. Не пытайтесь просто исправить ранее созданный и протестированный класс. Теперь в вашем распоряжении по-прежнему останется старое, проверенное временем решение, и вы сможете на его основе выстроить новое. А теперь рекомендуем прочесть материал приведенных ниже разделов Вопросы и ответы и Задания . Вопросы и ответы Вопрос. Так ли важно уметь создавать классы? Ответ. В принципе, нет, но это в ваших собственнгх интересах. Создавая классы, вы получите такие же преимущества, как и при использовании стандартных классов Access, - удобство, надежность, компактность и возможность повторного использования кода. Вопрос. Можно ли переносить модули вообще и классы в частности из одной базы данных в другую? Ответ. Да. В меню File редактора Microsoft Visual Basic есть элементы Import File и Export File. Соответствующие им команды предоставляют возможность переноса кода VBA между различными базами данных, в том числе и созданными другими разработчиками. Вопрос. Что лучше - создавать код класса с нуля или всегда пытаться использовать существующие решения? Ответ. Ответ очевиден - если в вашем распоряжении имеются готовые и протестированные фрагменты кода, решающего хотя бы часть общей задачи, используйте их. Вы получите ощутимые преимущества даже в том случае, если существующий код слишком избыточен, чтобы точно соответствовать условиям конкретной задачи. Готовый код уже написан и проверен, и вам не придется тратить время на изобретение велосипеда и его обкатку - этих аргументов вполне достаточно. Вопрос. Как узнать, когда именно следует создавать класс? Ответ. Если вам удается определить круг взаимосвязанных элементов данных и способов их обработки, доступно и последовательно очерчивающих проблему, - постройте соответствующий класс. Пусть вашим лучшим советчиком будет собственный опыт. Задания Ниже приведены тестовые задания и упражнения, которые помогут вам самостоятельно проверить уровень освоения материала, изложенного в этой главе. Ответы на вопросы вы найдете в приложении. Тесты 1. В чем заключаются преимущества агрегации кода? 2. Сколько атрибутов внешнего интерфейса целесообразно определить при создании нового класса? , 3. Как отличить атрибуты внешнего интерфейса класса от остальн1х? 4. Назовите стандартные процедуры, которые выз1ваются при создании объекта класса и его уничтожении. ажнения 1. Добавьте в состав класса Strings атрибут Text, позволяющий возвратить содержимое всех элементов коллекции в виде единой строки, в которой частные значения разделяются константой 2. Добавьте в интерфейс класса Strings Property-метод Let Text, который дает возможность расчленить общую строку Text на отдельные сегменты и сохранить их в элементах коллекции. 3. Дополните текст методов ReadFromFile и WriteToFile класса Strings таким образом, чтобы обеспечить поддержку свойства Text (см. предыдущие упражнения).
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |