русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Manager.


Дата добавления: 2015-07-09; просмотров: 496; Нарушение авторских прав


Завершающим этапом создания API будет создание класса Manager. Так как API содержит в себе множество методов и переменных, но часть функционала необходимо закрыть от постороннего вмешательства, чтобы не допустить нарушения целостности выполнения приложения. Решить такую задачу можно при помощи готового подхода, называемым шаблоном проектирования Façade. Основная идея, которого заключается в сведении всего функционала в один объект, тем самым гарантируя единую точку доступа для всех компонентов подсистем. В разрабатываемом API, класс Manager является реализацией такого шаблона, инкапсулируя в себя все предыдущие классы.

Класс Manager обеспечивает более высокий уровень взаимодействия с функционалом API и позволяет выполнять операции подобные перемещению квадрата в плоскости и созданию новых фигур определённо типа.

Чтобы закрыть доступ к основному хранилищу объектов создадим экземпляр класса MemoryDAO в классе Manager и сделаем его типа private.

private:

MemoryDAO dao;

Это позволит при наличии одного фасада гарантировать только одно хранилище объектов в API.

Единство точки доступа обеспечивается наличием только одного объекта Manager. Для этого воспользуемся шаблоном Singleton,который формирует структуру кода способную гарантировать, что у класса только один экземпляр, и предоставлена глобальная точка доступа.

Как гарантировать, что у класса есть единственный экземпляр и что он легко доступен?

1. Использовать глобальные переменные. Но это не запрещает создание объектов в другом месте.

2. Сам класс контролирует то, что у него есть только один экземпляр.

Реализуем эти параметры в классе Manager. Для этого сделаем закрытый статический указатель на объект класса Manager. Также закроем доступ, к конструктору сделав его типа protected, тем самым ограничив его зону видимости до локальной и запретив явный вызов конструктора из вне. Добавим открытый статический метод getManager() который проверяет, инициализирована ли переменная manager если нет создаёт объект Manager и присваивает его переменной, если да то возвращает уже созданный объект.



private:

static Manager* manager;

protected:

Manager(void);

public:

static Manager* getManager();

 

Manager* Manager::manager = 0;

Manager* Manager::getManager()

{

if(manager == 0)

{

manager = new Manager();

}

return manager;

}

Список литературы

 

1. С++: руководство для начинающих, 2-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2005.-672 с.: ил.- Парал. тит. англ.

2. Приемы объектно-ориентированного проектирования. Патерны проектирования. – СПб.: Питер, 2008.-366 с.: ил.

3. Совершенный код. Мастер-класс/ Пер. с англ. – М.: Издательский дом «Русская редакция» ; СПб.: Питер, 2005 – 896 стр.: ил.


Содержание:

  1. Введение

Аспекты ООП………………………………..............3

Инкапсуляция…………………………………..........7

Наследование……………………………..................8

Полиморфизм……………………………................10



<== предыдущая лекция | следующая лекция ==>
MemoryDAO. | Введение в лабораторную работу


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.626 сек.