logo-img
  • Фантастика
    • Попаданцы
    • Юмористическая фантастика
    • Социально-философская фантастика
    • Фэнтези
    • Космическая фантастика
    • Городское фэнтези
    • Боевая фантастика
    • ЛитРПГ
    • Фантастика
    • Современная сказка
    • Социально-психологическая фантастика
    • Хроноопера
    • Ужасы
    • Мифологическое фэнтези
    • Фантастика: прочее
    • РеалРПГ
    • Славянское фэнтези
    • Бояръ-Аниме
    • Мистика
    • Историческое фэнтези
    • Ироническая фантастика
    • Альтернативная история
    • Технофэнтези
    • Постапокалипсис
    • Киберпанк
    • Детективная фантастика
    • Стимпанк
    • Героическая фантастика
    • Научная Фантастика
    • Эпическая фантастика
    • Ненаучная фантастика
    • Сказочная фантастика
    • Космоопера
    • Юмористическое фэнтези
    • Ироническое фэнтези
    • Ужасы и мистика
  • Любовные романы
    • Исторические любовные романы
    • Современные любовные романы
    • Остросюжетные любовные романы
    • Любовные романы
    • Любовное фэнтези, любовно-фантастические романы
    • Короткие любовные романы
    • Эротическая литература
    • Эротика
    • Любовно-фантастические романы
    • Прочие любовные романы
  • Приключения
    • Приключения
    • Исторические приключения
    • Приключения для детей и подростков
    • Приключения в современном мире
    • Природа и животные
    • Вестерн, про индейцев
    • Авантюрный роман
    • Рыцарский роман
    • Морские приключения
    • Путешествия и география
    • Вестерны
    • Приключения про индейцев
    • Прочие приключения
  • Романы про измену
книги
  • книги
  • авторы
  • серии
0
logo-img

Фантастика

  • Попаданцы
  • Юмористическая фантастика
  • Социально-философская фантастика
  • Фэнтези
  • Космическая фантастика
  • Городское фэнтези
  • Боевая фантастика
  • ЛитРПГ
  • Фантастика
  • Современная сказка
  • Социально-психологическая фантастика
  • Хроноопера
  • Ужасы
  • Мифологическое фэнтези
  • Фантастика: прочее
  • РеалРПГ
  • Славянское фэнтези
  • Бояръ-Аниме
  • Мистика
  • Историческое фэнтези
  • Ироническая фантастика
  • Альтернативная история
  • Технофэнтези
  • Постапокалипсис
  • Киберпанк
  • Детективная фантастика
  • Стимпанк
  • Героическая фантастика
  • Научная Фантастика
  • Эпическая фантастика
  • Ненаучная фантастика
  • Сказочная фантастика
  • Космоопера
  • Юмористическое фэнтези
  • Ироническое фэнтези
  • Ужасы и мистика

Любовные романы

  • Исторические любовные романы
  • Современные любовные романы
  • Остросюжетные любовные романы
  • Любовные романы
  • Любовное фэнтези, любовно-фантастические романы
  • Короткие любовные романы
  • Эротическая литература
  • Эротика
  • Любовно-фантастические романы
  • Прочие любовные романы

Приключения

  • Приключения
  • Исторические приключения
  • Приключения для детей и подростков
  • Приключения в современном мире
  • Природа и животные
  • Вестерн, про индейцев
  • Авантюрный роман
  • Рыцарский роман
  • Морские приключения
  • Путешествия и география
  • Вестерны
  • Приключения про индейцев
  • Прочие приключения

Детективы и Триллеры

  • Политические детективы
  • Триллер
  • Иронический детектив, дамский детективный роман
  • Советский детектив
  • Классический детектив
  • Политический детектив
  • Боевик
  • Про маньяков
  • Детективы
  • Медицинский триллер
  • Дамский детективный роман
  • Техно триллер
  • Юридический триллер
  • Боевики
  • Исторические детективы
  • Шпионский детектив
  • Прочие Детективы
  • Маньяки
  • Полицейские детективы
  • Исторический детектив
  • Шпионские детективы
  • Классические детективы
  • Триллеры
  • Криминальные детективы
  • Иронические детективы
  • Криминальный детектив
  • Крутой детектив
  • Пьесы

  • Финансы и бизнес

  • Эро литература

Поэзия

  • Визуальная поэзия
  • Песенная поэзия
  • Лирика
  • Визуальная и экспериментальная поэзия, верлибры, палиндромы
  • Поэма, эпическая поэзия
  • Классическая зарубежная поэзия
  • Классическая русская поэзия
  • Поэзия Востока
  • Современная поэзия
  • Классическая поэзия
  • Современная зарубежная поэзия
  • Современная русская поэзия
  • Юмористические стихи, басни
  • Верлибры
  • Палиндромы
  • Экспериментальная поэзия
  • Поэзия
  • в стихах
  • Эпическая поэзия
  • Басни
  • Дом и досуг

Документальная литература

  • Научпоп
  • Документальная литература
  • Военная документалистика и аналитика
  • География, путевые заметки
  • Биографии и Мемуары
  • Военная документалистика
  • Военное дело
  • Публицистика
  • Прочая документальная литература

Религия, духовность, эзотерика

  • Самосовершенствование
  • Хиромантия
  • Католицизм
  • Индуизм
  • Астрология и хиромантия
  • Православие
  • Религия, религиозная литература
  • Эзотерика
  • Эзотерика, эзотерическая литература
  • Протестантизм
  • Иудаизм
  • Христианство
  • Буддизм
  • Язычество
  • Религиоведение
  • Ислам
  • Прочая религиозная литература
  • Астрология
  • Религия
  • Аниме

  • Древние книги

Знания и навыки

  • Истории из жизни
  • Культура и искусство
  • Хобби, досуг
  • Научно-популярная литература
  • Словари, справочники
  • Учебная и научная литература
  • Саморазвитие / личностный рост

Лёгкое чтение

  • Ужасы / мистика
  • Классика жанра
  • Боевики, остросюжетная литература
  • Комиксы / манга
  • Юмористическая литература
  • Легкая проза

Серьёзное чтение

  • Об истории серьезно
  • Пьесы, драматургия
  • Классическая литература
  • Cтихи, поэзия

Юмор

  • Юмористические стихи
  • Сатира
  • Юмористическая проза
  • Анекдоты
  • Юмор
  • Прочий юмор
  • Книги по IT

  • Словари и Энциклопедии

  • Love Action

  • Ценные бумаги

  • Эссе

  • Без Жанра

  • Иностранная литература

  • Народные

  • Романы про измену

  • Образование и наука

  • РПГ

Наука, Образование

  • Религия и духовная литература
  • Книги по психологии
  • Книги о путешествиях
  • Популярно об истории
  • Книги о войне
  • Юриспруденция
  • Военная история
  • Альтернативная медицина
  • Философия
  • Медицина
  • Зоология
  • Физика
  • Литературоведение
  • Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
  • Языкознание, иностранные языки
  • Биология, биофизика, биохимия
  • Обществознание, социология
  • Психология и психотерапия
  • Востоковедение
  • Химия
  • История
  • Ботаника
  • Экономика
  • Альтернативные науки и научные теории
  • Научная литература
  • Рефераты
  • Секс и семейная психология
  • Историческая фантастика
  • Историческая литература
  • Политика
  • Геология и география
  • Ветеринария
  • Экология
  • Государство и право
  • Астрономия и Космос
  • Математика
  • Шпаргалки
  • Биохимия
  • Обществознание
  • Педагогика
  • Психология
  • Учебники
  • Иностранные языки
  • Детская психология
  • Биофизика
  • Прочая научная литература
  • Языкознание
  • Биология
  • Психотерапия и консультирование
  • Документальное

Техника

  • Транспорт и авиация
  • Строительство и сопромат
  • Автодело
  • Металлургия
  • История техники
  • Военное дело, военная техника и вооружение
  • Технические науки
  • Радиоэлектроника
  • Архитектура

Справочная литература

  • Прочая справочная литература
  • Путеводители, карты, атласы
  • Справочники
  • Справочная литература
  • Руководства
  • Словари
  • Энциклопедии
  • Путеводители

Фольклор

  • Частушки, прибаутки, потешки
  • Былины
  • Фольклор: прочее
  • Загадки
  • Детский фольклор
  • Народные песни
  • Былины, эпопея
  • Фольклор, загадки folklore
  • Народные сказки
  • Мифы. Легенды. Эпос
  • Пословицы, поговорки
  • Образовательная литература

  • Cпецслужбы

  • Семейная психология

  • Семейный роман

  • Частушки

Литература для детей

  • Зарубежные детские книги
  • Детские детективы
  • Школьные учебники
  • Учебная литература
  • Книги для подростков
  • Буквари
  • Фантастика для детей
  • Детская литература
  • Проза для детей
  • Классическая детская литература
  • Стихи для детей
  • Русские сказки
  • Зарубежная литература для детей
  • Сказки народов мира
  • Внеклассное чтение
  • Игры, упражнения для детей
  • Сказки
  • Детская познавательная и развивающая литература
  • Детская образовательная литература
  • Книги для дошкольников
  • Прочая детская литература
  • Детские приключения
  • Детская проза
  • Детские стихи
  • Детские остросюжетные
  • Детская фантастика
  • Книга-игра

Искусство, Искусствоведение, Дизайн

  • Мировая художественная культура
  • Искусство и Дизайн
  • Кино
  • Музыка
  • Партитуры
  • Искусствоведение
  • Живопись, альбомы, иллюстрированные каталоги
  • Скульптура и архитектура
  • Критика
  • Культурология
  • Театр

Жанр не определён

  • Разное

Деловая литература

  • Деловая литература
  • Зарубежная деловая литература
  • Управление, подбор персонала
  • Личная эффективность
  • О бизнесе популярно
  • Интернет-бизнес
  • Банковское дело
  • Менеджмент
  • Менеджмент и кадры
  • Тайм-менеджмент
  • Ценные бумаги, инвестиции
  • Кадровый менеджмент
  • Политическое управление
  • Краткое содержание
  • Ораторское искусство / риторика
  • Работа с клиентами
  • Стартапы и создание бизнеса
  • Маркетинг, PR, реклама
  • Маркетинг, PR
  • Финансы
  • Карьера, кадры
  • Экономика
  • Поиск работы, карьера
  • Отраслевые издания
  • Недвижимость
  • Корпоративная культура
  • Делопроизводство
  • Внешнеэкономическая деятельность
  • Бухучет и аудит
  • Торговля
  • Малый бизнес
  • Личные финансы
  • Государственное и муниципальное управление

Драматургия

  • Водевиль
  • Киносценарии
  • Сценарий
  • Античная драма
  • Трагедия
  • Комедия
  • Драма
  • Мистерия, буффонада, водевиль
  • Драматургия
  • Мистерия

Дом и семья

  • Прикладная литература
  • Спорт / фитнес
  • Рукоделие и ремесла
  • Изобразительное искусство
  • Йога
  • Секс / секс-руководства
  • Красота
  • Мода и стиль
  • Эротика и секс
  • Домашнее хозяйство
  • Интерьеры
  • Хобби / увлечения
  • Домашние животные
  • Коллекционирование
  • Хобби и ремесла
  • Боевые искусства, спорт
  • Домоводство
  • Здоровье
  • Кулинария
  • Развлечения
  • Сад и огород
  • Педагогика, воспитание детей, литература для родителей
  • Медицина и здоровье
  • Семейные отношения, секс
  • Семейные отношения
  • Рыбалка
  • Отдых / туризм
  • Автомобили и ПДД
  • Сделай сам
  • Прочее домоводство
  • Спорт
  • Здоровье и красота
  • Охота

Компьютеры и Интернет

  • Цифровая обработка сигналов
  • Учебные пособия, самоучители
  • ОС и Сети, интернет
  • Программирование, программы, базы данных
  • Компьютерное 'железо' (аппаратное обеспечение), цифровая обработка сигналов
  • Зарубежная компьютерная, околокомпьютерная литература
  • Компьютерное «железо»
  • Базы данных
  • ОС и Сети
  • Интернет
  • Программное обеспечение
  • Программирование
  • Прочая компьютерная литература

Прочее

  • Публицистическая литература
  • Шахматы
  • Подростковая литература
  • Газеты и журналы
  • Недописанное
  • Комиксы
  • Журналы, газеты
  • Изобразительное искусство, фотография
  • Самиздат, сетевая литература
  • Неотсортированное
  • Незавершенное
  • Фанфик

Учебники и пособия

  • Учебники и пособия
  • Школьные учебники и пособия, рефераты, шпаргалки
  • Учебники и пособия ВУЗов
  • Учебники и пособия для среднего и специального образования

Военное дело

  • Боевые искусства
  • Спецслужбы
  • Военная техника и вооружение
  • Военное дело: прочее

Проза

  • Малые литературные формы прозы: рассказы, эссе, новеллы, феерия
  • Историческая проза
  • Контркультура
  • Эпистолярная проза
  • Русская классическая проза
  • Советская классическая проза
  • Магический реализм
  • Проза
  • Зарубежная классическая проза
  • Классическая проза ХX века
  • Классическая проза ХIX века
  • Роман, повесть
  • Фантасмагория, абсурдистская проза
  • Афоризмы, цитаты
  • Экспериментальная, неформатная проза
  • Проза о войне
  • Современная русская и зарубежная проза
  • Классическая проза XVII-XVIII веков
  • Афоризмы
  • Эпопея
  • Феерия
  • Семейный роман/Семейная сага
  • Эссе, очерк, этюд, набросок
  • Средневековая классическая проза
  • Современная проза
  • Классическая проза
  • Готический роман
  • Антисоветская литература
  • Военная проза
  • Проза прочее
  • Роман
  • Повесть
  • Новелла
  • Сентиментальная проза
  • Рассказ

Родителям

  • Воспитание детей
  • Здоровье детей
  • Детские книги
  • Романы

Старинное

  • Античная литература
  • Прочая старинная литература
  • Европейская старинная литература
  • Древнерусская литература
  • Древневосточная литература

Зарубежная литература

  • Зарубежная справочная литература
  • Зарубежные детективы
  • Зарубежная прикладная литература
  • Зарубежное фэнтези
  • Зарубежная религиозная литература
  • Зарубежная образовательная литература
  • Зарубежная публицистика
  • Зарубежная психология
  • Зарубежные любовные романы
  • Зарубежная поэзия
  • Зарубежная классика
  • Зарубежная старинная литература
  • Зарубежная компьютерная литература
  • Зарубежная литература о культуре и искусстве
  • Зарубежные приключения
  • Современная зарубежная литература
  • Зарубежная драматургия
  • Зарубежная фантастика
  • Зарубежный юмор
  • Книги Для Детей

  • Стихи и поэзия

 

Примеры использования Паттерн Singleton (Одиночка) полностью

  • Читка
  • Компьютеры и Интернет
  • Программирование, программы, базы данных
  • Примеры использования Паттерн Singleton (Одиночка)
Примеры использования Паттерн Singleton (Одиночка)

Примеры использования Паттерн Singleton (Одиночка)

  • Дмитрий Юрьевич Федоров
  • Программирование, программы, базы данных
  • 18+
<p>Дмитрий Федоров</p><p>Паттерн Singleton (Одиночка)</p><p>Примеры использования <strong>тура</strong></p><p>Проблемы, связанные с глобальными объектами</p>

При разработке больших проектов, часто возникает необходимость обращаться из одного модуля программы к объектам, существующим в другом модуле. Такие объекты, как правило, существуют в единичных экземплярах, поэтому наиболее распространенной практикой является создание глобальных объектов данного типа и ссылка на них из других модулей программы с применением ключевого слова extern. Так, например, при создании ATL проекта в среде MSVC++, мастер проекта создает экземпляр класса – наследника от CComModule, _Module, в главном файле проекта, и помещает объявление extern CMyModule _Module в stdafx.h, что делает доступным объект _Module из других файлов проекта. Однако при таком подходе отсутствует механизм, предотвращающий создание нескольких объектов данного типа. Кроме того, поскольку объект создается статически, отсутствует возможность управлять процессом его создания. То есть, объект создается автоматически, до момента его фактического применения в программе. Это может приводить к некоторым неприятным последствиям: если объект работает с некоторой инфраструктурой, то инициализация и освобождение этой инфраструктуры должны быть помещены, например, в этот же класс.

листинг 1

class BusinesLogic //использует инфраструктуру COM

{

public:

 BusinesLogic () {

  CoInitializeEx(NULL, COINIT_MULTITHREADED);

  //некая работа с COM

 }

 ~BusinesLogic () {

  CoUninitialize();

 }

};

Глядя на следующий фрагмент, нельзя сказать, была ли инициализирована инфраструктура, а если да, то ничего нельзя сказать о выбранной потоковой модели COM. Как следствие, такой код – источник ошибок и возможных проблем с их диагностикой.

листинг 2

BusinesLogic BL;

void main() {

 HRESULT hr;

 IUnknown *p;

 hr=CoCreateInstance(CLSID_AppartmentThreadClass, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&p);

}

При наличии в программе двух глобальных объектов, ссылающихся друг на друга, помещенных в разных модулях, может возникнуть ситуация, при которой один объект попытается обратиться к другому, еще не созданному объекту.

Выходом является использование паттерна проектирования Singleton. Его особенностью является то, что он гарантирует существование объекта в единственном экземпляре, а самое главное, то, что он создается в тот момент, когда это требуется клиенту. Последующие попытки конструирования объекта приводят лишь к возвращению клиенту ссылки на уже существующий объект, но не к созданию нового. Вот пример класса, реализующего логику паттерна Singleton:

Листинг 3

class Singleton {

 static Singleton* _self;

protected:

 Singleton(){}

public:

 static Singleton* Instance() {

  if (!_self) _self = new Singleton();

  return _self;

 }

 //методы

 void aFunc1();

 void aFunc2();

 //данные

 int aData;

};

Singleton* Singleton::_self=NULL;

ПРИМЕЧАНИЕ Конструктор класса объявлен в защищенной секции. Благодаря этому отсутствует возможность создавать объекты класса по оператору new или статически. Вместо этого для конструирования объекта служит метод Instance(), который гарантирует, что в программе будет существовать только один экземпляр данного класса.

Таким образом, класс Singleton инкапсулирует в себе методы и свойства данной сущности, может быть доступен из любого места программы благодаря методу Instance(), а, кроме того, теперь мы можем управлять временем жизни этого объекта. Вот пример использования класса Singleton:

Модуль MAIN

#include "app.h"

void main() {

 Application* application = Application::Instance();

 application->Run();

 delete application;

}

Модуль APP

#include

using std::string;

class Window;

class Application {

 static Application* _self;

 Window *wnd;

protected:

 Application(){}

public:

 static Application* Instance();

 int loadIniInt(string& section, string& var);

 void saveIniInt(string& section, string& var, int val);

 void Run();

};

Application* Application::Instance() {

 if(!_self) _self = new Application();

 return _self;

}

int Application::loadIniInt(string& section, string& var) {

Перейти на страницу:
Читать далее
  • Предыдущая
  • 1
  • 2
  • 3
  • 4
  • ...
  • 5
  • Читать далее

Поиск

Книга жанров

  • Компьютеры и Интернет
  • Программирование, программы, базы данных

Похожие книги

200 лучших программ для Интернета. Популярный самоучитель
Программирование, программы, базы данных
  • Илья Краинский

200 лучших программ для Интернета. Популярный самоучитель

Начать чтение
C++: базовый курс
Программирование, программы, базы данных
  • Герберт Шилдт

C++: базовый курс

Начать чтение
97 этюдов для архитекторов программных систем
Программирование, программы, базы данныхБазы данныхПрограммированиеКниги по IT
  • Нил Форд , Билл де Ора , Майкл Хайгард

97 этюдов для архитекторов программных систем

Начать чтение
MySQL: руководство профессионала
Программирование, программы, базы данныхБазы данныхКниги по IT
  • Алексей В Паутов , Алексей В. Паутов

MySQL: руководство профессионала

Начать чтение

Пожаловаться на книгу