Evgenii Legotckoi
Evgenii Legotckoi18 вересня 2018 р. 05:11

DelphiПриклад - Абстрактна фабрика в Delphi

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

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


Приклад

У …

Читати
Evgenii Legotckoi
Evgenii Legotckoi18 вересня 2018 р. 04:01

Шаблони проектуванняШаблони проектування, що породжують - Об'єктний пул

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

Голи

Об'єктний пул може значно підвищити продуктивність; він найбільш ефективний у ситуаціях, коли вартість ініціалізації екземпляра класу висока, а швидкість створення екземпляра класу висока, при цьому кількість екземплярів, що використовуються у будь-який момент часу, невелика.

Проблеми

Пули об'єктів (інакше звані …

Читати
Evgenii Legotckoi
Evgenii Legotckoi17 вересня 2018 р. 09:47

JavaПриклад - Abstract Factory на Java

abstract, Java

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

  • Factory Method: створення через успадкування.
  • Prototype: створення через делегування. …
Читати
Evgenii Legotckoi
Evgenii Legotckoi17 вересня 2018 р. 07:48

PHPПриклад - Abstract Factory в PHP

abstract, PHP

Приклад шаблону проектування абстрактної фабрики на PHP


<?php
/*
 *  Abstract Factory classes
 */

abstract class DB_Abstraction_Factory {
    protected $settings = array();
    protected function __construct() {
        $this->settings = Settings::getInstance();
    }

    abstract public function createInstance();
}

class DB_Abstraction_Factory_ADODB extends DB_Abstraction_Factory { …
Читати
Evgenii Legotckoi
Evgenii Legotckoi17 вересня 2018 р. 05:37

Шаблони проектуванняШаблони проектування, що породжують - Фабричний метод

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

Голи

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

Проблеми

Структура проекту повинна стандартизувати архітектурну модель для цілого ряду додатків, …

Читати
Evgenii Legotckoi
Evgenii Legotckoi16 вересня 2018 р. 14:25

EVILEGДодавання початкової підтримки фотографій і фотоальбомів

EVILEG, Развитие

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

Цели

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

Читати
Evgenii Legotckoi
Evgenii Legotckoi14 вересня 2018 р. 03:35

Шаблони проектуванняШаблони проектування, що породжують - Будівельник

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

Причини

  • Відділення побудови складного об'єкта з його уявлення, щоб той самий процес побудови міг створювати різні уявлення.
  • Розбирання складного уявлення, створення однієї мети з кількох варіацій.

Проблеми

Відділення алгоритму інтерпретації об'єкта (наприклад парсинг документа) від механізму збереження готового стану об'єкта. …

Читати
Evgenii Legotckoi
Evgenii Legotckoi13 вересня 2018 р. 08:03

PythonПриклад - Абстрактна фабрика на Python

abstract, factory, abc, python

Приклад абстрактної фабрики мовою програмування Python


"""
Предоставление интерфейса для создания семейств связанных или зависимых
объектов без указания их конкретных классов.
"""

import abc


class AbstractFactory(metaclass=abc.ABCMeta):
    """
    Объявление интерфейса для методов, которые создают объекты.
    """

    @abc.abstractmethod
    def create_product_a(self):
        pass

    @abc.abstractmethod …
Читати
Evgenii Legotckoi
Evgenii Legotckoi13 вересня 2018 р. 06:12

C++Приклад - Абстрактна фабрика C++

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

Обговорення. «Подумайте про створення об'єктів як про фабрику, яка породжує ці об'єкти».

Тут ми призначаємо обов'язки створення об'єктів фабричного об'єкту, а потім використовуємо функції успадкування та віртуальні члени для надання можливості «віртуального конструктора». Таким чином, існують два аспекти. Клієнт використовує …

Читати
Evgenii Legotckoi
Evgenii Legotckoi13 вересня 2018 р. 06:01

Шаблони проектуванняШаблони проектування, що породжують - Абстрактна фабрика

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

Причини

  • Надання інтерфейсу для створення сімейств пов'язаних чи залежних об'єктів без зазначення їх конкретних класів.
  • Ієрархія, яка інкапсулює: безліч можливих «платформ» та побудова набору «продуктів».
  • Оператор new вважається шкідливим.

Проблеми

Якщо програма має бути портативною, їй необхідно інкапсулювати всі залежності …

Читати
Evgenii Legotckoi
Evgenii Legotckoi09 серпня 2018 р. 04:29

LinuxBash-скрипт для створення та завантаження дампу бази даних та медіафайлів з віддаленого сервера

Bash, rsync, Linux

У процесі розробки сайту на Django (https://evileg.com/knowledge/django/) довелося почати розбиратися з Bash скриптами, щоб автоматизувати рутинні завдання. Наприклад, створення та завантаження дампа бази даних із сайту, а також резервування медіа файлів.

Будемо вважати, що Ви вже маєте доступ до сервера …

Читати
Evgenii Legotckoi
Evgenii Legotckoi07 серпня 2018 р. 03:10

LinuxПідрахунок кількості комітів для авторів у Git

Git, Fun, Linux

Задля розваги.

Чим можуть мірятися програмісти? Звичайно, своїми комітами, хоч би їхньою кількістю в Git репозиторії.

Для цього можна використовувати команду git shortlog, яка підсумовує виведення git log, надаючи більш короткий висновок.

Опції

Ця команда має кілька опцій, але використовуємо …

Читати
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50бали,
  • Рейтинг балів-4
m
  • molni99
  • 26 жовтня 2024 р. 01:37

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80бали,
  • Рейтинг балів4
m
  • molni99
  • 26 жовтня 2024 р. 01:29

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:20бали,
  • Рейтинг балів-10
Останні коментарі
ИМ
Игорь Максимов22 листопада 2024 р. 11:51
Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii Legotckoi31 жовтня 2024 р. 14:37
Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZE19 жовтня 2024 р. 08:19
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь Максимов05 жовтня 2024 р. 07:51
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas505 липня 2024 р. 11:02
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Тепер обговоріть на форумі
Evgenii Legotckoi
Evgenii Legotckoi24 червня 2024 р. 15:11
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey115 листопада 2024 р. 06:04
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProject04 червня 2022 р. 03:49
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
9
9Anonim25 жовтня 2024 р. 09:10
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

Слідкуйте за нами в соціальних мережах