Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
18 сентября 2018 г. 9:44

C++

cpp, Builder, Строитель, шаблоны проектирования

Обсуждение. Класс Builder строит сложный объект шаг за шагом. Абстрактный базовый класс объявляет стандартный процесс построения, а конкретные производные классы определяют соответствующую реализацию для каждого этапа процесса. В этом примере «распределенные рабочие пакеты» были абстрагированы от платформы.

Это означает, что специфический для платформы механизм для реализации файлов, очередей и путей параллелизма определяется в конкретном производном классе каждой платформы. Один объект «reader» (parser) извлекает архивированную спецификацию для пакета DistrWorkPackage и переходит к делегированию каждого шага сборки объекту-строителю, который был зарегистрирован клиентом. По завершении клиент получает конечный результат от строителя.

18 сентября 2018 г. 9:20

Java

Java, шаблоны проектирования, Builder

Пример шаблона проектирования Строитель на Java

18 сентября 2018 г. 9:11

Delphi

abstract, шаблоны проектирования, Delphi

Этот шаблон идеален там, где вы хотите изолировать свое приложение от реализации конкретных классов. Например, если вы хотите наложить VCL Delphi на общий уровень VCL для 16 и 32-битных приложений, вы можете начать с абстрактной фабрики в качестве базы.

18 сентября 2018 г. 8:01

Шаблоны проектирования

шаблоны проектирования, object, pool

Цели

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

Проблематика

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

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

17 сентября 2018 г. 13:47

Java

abstract, Java

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

  • Factory Method: создание через наследование.
  • Prototype: создание через делегирование.
  • Виртуальный конструктор: отложить выбор объекта для создания до времени выполнения.
17 сентября 2018 г. 11:48

PHP

abstract, PHP


Пример шаблона проектирования Абстрактная фабрика на PHP

17 сентября 2018 г. 9:37

Шаблоны проектирования

шаблоны проектирования, abstract, cpp

Цели

  • Определяем интерфейс для создания объекта, но пусть подклассы решают, какой класс следует создавать. Фабричный метод позволяет создать экземпляр класса для подклассов.
  • Определение «виртуального» конструктора.
  • Оператор new является вредным.

Проблематика

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

16 сентября 2018 г. 18:25

EVILEG

EVILEG, Развитие

Выходные не прошли даром. За пару дней удалось написать достаточно функциональную поддержку загрузки фотографий через WYSIWYG редактор сайта. О чём хотелось бы подробнее сообщить пользователям сайта в виде статьи.

Цели

Написанием собственного WYSIWYG редактора преследую на данный момент несколько целей.

  1. Возможность отказаться от сторонних редакторов на сайте. До данного момента использовался CKEditor.
  2. Также проблемой CKEditor (кроме необходимости стилизации, которую я не хотел делать) являлось то, что средствами JavaScript его нельзя было перемещать по странице. Вернее можно было, но он просто переставал работать. В самописном WYSIWYG этой проблемы у меня нет.
  3. Для учёта информации о загружаемом контенте необходимо было также организовать контроль над загружаемыми изображениями, чтобы получить полноценную возможность первоначального формирования альбомов пользователей с дальнейшей возможностью переиспользования изображений в других постах, статьях и т.д. на основе сформированных альбомов.
  4. Добавление возможности вставки изображений в сообщения на форуме, комментарии, личные сообщения и т.д.

14 сентября 2018 г. 7:35

Шаблоны проектирования

Builder, шаблоны проектирования, Строитель

Причины

  • Отделение построения сложного объекта от его представления, чтобы тот же процесс построения мог создавать разные представления.
  • Разборка сложного представления, создание одной цели из нескольких вариаций.
13 сентября 2018 г. 12:03

Python 3

abstract, factory, abc, python

Пример абстрактной фабрики на языке программирования Python

16 ноября 2018 г. 19:09
Илья Завьялов

Qt - Тест 001. Сигналы и слоты

  • Результат:31баллов,
  • Очки рейтинга-10
16 ноября 2018 г. 12:49
Ирина Минигузина

C++ - Тест 003. Условия и циклы

  • Результат:0баллов,
  • Очки рейтинга-10
16 ноября 2018 г. 8:55
Vitaliy

Qt - Тест 001. Сигналы и слоты

  • Результат:52баллов,
  • Очки рейтинга-4
Последние комментарии
16 ноября 2018 г. 6:50
Евгений Легоцкой

Добрый день! шаблон не находит, или шаблон неправильно прописали, или тег шаблона неправильно написан, иных выводов сделать не могу, из того, что вы написали. трейсбек нужно смотреть. Со...
16 ноября 2018 г. 6:48
Евгений Легоцкой

пройтись циклом по всем виджетам в обратном порядке for (int i = ui->vertialLayout->count() - 1; i >= 0; --i){ QWidget* w = ui->verticalLyout->itemAt(i)->widget();...
15 ноября 2018 г. 21:35
chunk

Доброго времени суток Евгений. Не подскажете что я делаю не так? Получаю ошибку такого характера: Reverse for 'add_comment' with arguments '('',)' not found. 1 pattern(s) tried: ...
15 ноября 2018 г. 15:35
Михаиллл

Спасибо. Похоже где то описку сделал, поэтому не работало. Я добавил на verticalLayout много виджитов. А можно ли их как то быстро и просто удалить?
15 ноября 2018 г. 14:55
Евгений Легоцкой

verticalLayout - это, по-моему предположению, должен быть у вас объект класса QVBoxLayout, который наследован от QBoxLayout. Поэтому открываете документацию на QVBoxLayout ...
Сейчас обсуждают на форуме
16 ноября 2018 г. 16:28
Евгений Легоцкой

Добрый день! Спасибо, что воспользовались именно форумом. Заниматься курсовыми работами чьими-то ни было у меня времени нет, у самого полторы работы. Но что-то подсказать на фо...
16 ноября 2018 г. 9:52
Евгений Легоцкой

Отладчик!!!! Версия комплекта MSVC 2015 + компилятор 14.0!!!!
14 ноября 2018 г. 15:25
Михаиллл

вот решение // grab the model QStandardItemModel* model = qobject_cast<QStandardItemModel*> ( ui->combobox->model() ); if (!model) { // check is important or u can/might ...
14 ноября 2018 г. 19:56
Евгений Легоцкой

Добрый день! QGripSize целится на окно, но никак не на виджет. Здесь можно кастомную вьюшку написать. Вот в этой статье есть пример написания собственного ресайза ....
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы