Скачать 42.33 Kb.
|
Архитектура системыTable of Contents Архитектура системы 1 Описание архитектуры 3 Описание шаблонов 3 MVC 3 Одиночка 4 Метод фабрики 5 Описание архитектурыВ связи с распространением альтернативных системам Windows операционных систем UNIX, Linux, FreeBSD принято решение о написании системы с использованием кроссплатформенной библиотеки виджетов (в целях максимального охвата терминалов вне зависимости от типа их операционной системы). По результатам обзора и сравнения из таких библиотек выбрана qt4, как наиболее зрелая, стабильная и относительно простая в освоении. Выбор данной библиотеки оказывает существенное влияние на архитектуру: она построена на основании паттерна Модель-Представление-Поведение (MVC - model-view-controller), то есть программисты при создании виджетов реализуют часть model, а две оставшиеся предоставляются qt. Соответственно, нашу систему удобно строить на основании того же паттерна MVC (хотя возможно и в несколько рафинированном виде). Cистема будет разделена на 2 больших части: логика и графический интерфейс. Первая будет содержать реализованные контейнеры, а вторая будет модельной частью виджетов qt, для демонстрации работы первой. Для сущностей «Сеть доставки» и «Параметры пользователя» удобно применить шаблон Одиночка (Singleton). Это обеспечит нам единственность экземпляров соответствующих классов на протяжении всего сеанса работы с программой. В приложении в зависимости от типа авторизованного пользователя необходимо менять расположение элементов в окне, разрешать или запрещать отображение некоторых элементов. Для этого удобно использовать шаблон Метод фабрики (Factory Method). ^ MVCModel-view-controller (MVC, «Модель-представление-поведение») — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты. Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента
![]() Важно отметить, что как представление, так и поведение зависят от модели. Однако модель не зависит ни от представления, ни от поведения. Это одно из ключевых достоинств подобного разделения. Оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели. ОдиночкаНазначение Гарантирует существование только одного объекта данного класса и обеспечивает глобальный доступ к этому объекту. Мотивация Иногда важно, чтобы существовал ровно один экземпляр какого-либо класса. Система может иметь много принтеров, но должен существовать только один спулер принтера. Должна существовать только одна файловая система и один администратор оконного режима. Цифровой фильтр всегда имеет один A/D преобразователь. Как можно гарантировать, что класс имеет только один объект и что этот образец является легко доступным? Глобальная переменная делает объект доступным, но не предохраняет Вас от инстанцирования множества объектов. Лучшее решение состоит в том, чтобы определить класс, непосредственно ответственный за слежение за собственным объектом. Класс может гарантировать, что никакой другой экземпляр не может быть создан (прерывая запросы на создание новых объектов). Этот шаблон - Singleton. Структура ![]() ^
^ Назначение Определяет интерфейс для создания объекта, но позволяет подклассам решить какой класс им инстанцировать. Метод Фабрики позволяет классу перекладывать инстанцирование на подклассы. Мотивация Каркас приложения использует абстрактные классы, чтобы определять и поддерживать связи между объектами. Оно часто ответственно и за создание этих объектов. ![]() Поскольку подкласс Document, экземпляр которого необходимо описать является специфическим для каждого приложения, класс Application не может предсказывать, что за подкласс Document необходимо создавать, он знает лишь когдановый документ должен быть создан. Таким образом, структура по идее должна создавать экземпляры абстрактного класса, но это невозможно. Шаблон Метода Фабрики предлагает следующее решение. Он инкапсулирует информацию о том, который подкласс Document создать и выносит эту информацию за пределы каркаса. Подклассы Application переопределяют абстрактную операцию CreateDocument, чтобы возвратить соответствующий подкласс Document. Будучи инстанцированным, Application может инстанцировать специфические для приложения Document-ы не зная их классы. Мы называем CreateDocument методом фабрики, потому что он отвечает за "производство" объекта. Структура ![]() ^ Product (Document) Определяет интерфейс объектов, которые метод фабрики создает. ConcreteProduct (MyDocument) Реализует интерфейс программы. Creator (Application) Объявляет метод фабрики, который возвращает объект типа Product. Creator может также определять заданную по умолчанию реализацию метода фабрики, которая возвращает заданный по умолчанию объект ConcreteProduct. Может вызывать метод фабрики создать объект Product. ConcreteCreator (MyApplication) Переопределяет метод фабрики, чтобы возвращать экземпляры ConcreteProduct. |
![]() | Клиент-серверная архитектура. Это сетевая архитектура, в которой устройства являются либо клиентами, либо серверами [9] | ![]() | Клиент-серверная архитектура. Это сетевая архитектура, в которой устройства являются либо клиентами, либо серверами [9] |
![]() | Клиент-серверная архитектура. Это сетевая архитектура, в которой устройства являются либо клиентами, либо серверами [9] | ![]() | Архитектура эвм, англ. Computer architecture — концептуальная структура вычислительной машины, определяющая проведение обработки... |
![]() | Данная статья посвящена обзору готовящегося к печати учебного пособия «Архитектура параллельных систем», основанного на материале... | ![]() | Идея проекта — познание того как менялась архитектура городов Европы с наступлением новой эпохи |
![]() | Архитектура микропроцессора. Алгоритм работы процессора. Методы адресации. Обработка прерываний | ![]() | Модерн (арнуво, югендетиль, сецессион, либерти, модернисмо, неорусский стиль), кон. XIX — нач. XX в |
![]() | Арм или PowerPC. В этой статье рассматривается qemu и его архитектура, и показывается, как эмулировать гостевую операционную систему... | ![]() | Заболевания костно-мышечной системы, органов дыхания, сердечно-сосудистой системы, мочеполовой системы, нервной системы |