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: руководство профессионала

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

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