Рубрики
Без рубрики

Диаграмма UML для образцов рисунков дизайна GOF в Python

Этот пост списков UML-диаграммы примеров рисунков GOF дизайна, написанные в Python. Диаграммы UML … помечены с UML, GOF, DesignPatterns, Python.

Этот пост списков UML-диаграммы примеров рисунков GOF дизайна, написанные в Python. Диаграммы UML отображаются с использованием Диаграмма карта . Если вы хотите знать о Диаграмма карта см. Это пост Отказ Кроме того, вы можете получить данные UML-модели и код Python из примеров здесь Отказ

Оглавление

  • Поведенческие шаблоны
    • Цепочка ответственности
    • Команда
    • Устный переводчик
    • Итератор
    • Посредник
    • Memento.
    • Наблюдатель
    • Состояние
    • Стратегия
    • Метод шаблона
    • Посетитель
  • Творческие узоры
    • Абстрактная фабрика
    • Строитель
    • Фабричный метод
    • Прототип
    • Синглтон
  • Структурные узоры
    • Адаптер
    • Мост
    • Составной
    • Декоратор
    • Фасад
    • Робость
    • Прокси
  • использованная литература
  • Ссылки

Схема намерения Избегайте соединения отправителя запроса к его приемнику, предоставив более одного объекта возможность обрабатывать запрос. Цепь приемных объектов и передайте запрос вдоль цепи, пока объект не обрабатывает его (шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Проблема среди сторонников обернулась, и беда будет обрабатываться сторонником, который может справиться с этим. Ниже приведены четыре типа сторонников: Лазисупопоспортер не обрабатывает никаких проблем Moodysupporter обрабатывает нечетные проблемы Специальный приспособен обрабатывает проблему целевого идентификатора. Limitedsupporter обрабатывает неприятности ниже предела лимита. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Простое приложение для рисования: Нарисуйте путь с точками, перетаскивая мышь. Вернитесь к одному предыдущему рисунку, нажав кнопку Отменить. Стереть весь рисунок, нажав кнопку CLEAR. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Учитывая язык, определите представление для своей грамматики вместе с интерпретатором, который использует представление для интерпретации предложений на языке (модели проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Переводчик для мини-языка для эксплуатации радиоуправляемого автомобиля. Он анализирует следующий синтаксис, состоящий из команд «вперед», «Left», «Верна» и «Повторите»: Введите полноэкранный режим Выйдите из полноэкранного режима Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Предоставьте способ получить доступ к элементам совокупного объекта, последовательно, не подвергая его базовым представлением (шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Добавьте книги на книжную полку и отобразите названия книги в свою очередь. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Определите объект, который инкапсулирует, как взаимодействует набор объектов. Посредник способствует свободным муфтам, поддерживая объекты от обращения друг к другу явно, и она позволяет вам варьироваться в зависимости от их взаимодействия независимо (узоры проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Покажите диалоговое окно входа в систему для ввода имени пользователя и пароля. Диалог имеет следующие элементы: Радио кнопки «Гость» и «Войти» «Имя пользователя» и «пароль» текстовые поля «ОК» и «Отмена» кнопки И изменить редактируемые свойства элементов в зависимости от состояния радиопередач и текстовых полей. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Игра в кости, в которой деньги увеличиваются и уменьшаются: Геймер качает кости и число определяет следующее состояние. Если количество кубиков даже даже, деньги Gamer удваиваются, и если это странно, деньги Gamer сокращаются вдвое. Если деньги Gamer меньше половины наибольшей суммы, она возвращается к наибольшей сумме. Игра повторяется Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Наблюдатели соблюдают предмет объекта, содержащего числовое значение и отобразите значение. Форматы дисплея являются цифрами и гистограммы. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Разрешить объекту изменить его поведение при изменении его внутреннего состояния. Появится объект, чтобы изменить свой класс (шаблоны дизайна: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Безопасная система безопасности, что состояние безопасности меняется со временем. Когда вы нажимаете кнопку в диалоговом окне, отображаемое сообщение изменится в зависимости от того, то время – это день или ночью. Внутреннее время диалога продвигается один час на каждые секунды в реальном времени. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Игра рок-ножницы-бумаги. Доступны две стратегии: Случайная стратегия: показывая случайный сигнал рук. Зеркальная стратегия: показывая сигнал руки от сигнала руки предыдущего противника. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Определите скелет алгоритма в работе, откладывая некоторые шаги в клиентские подклассы. Метод шаблона позволяет подклассу переопределить определенные шаги алгоритма без изменения структуры алгоритма (узоры дизайна: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Показать символ или строку несколько раз в 5 раз. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Посетитель посещает файловую систему, состоящую из файлов и каталогов, и отображает список файлов/каталогов. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Предоставьте интерфейс для создания семейств связанных или зависимых объектов без указания их конкретных классов (структурные шаблоны: элементы многорегулируемого объектно-ориентированного программного обеспечения).

Об этом Пример Создайте сборную иерархическую ссылку в качестве файла HTML. Это может быть создано в табличном или списком формате. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Отделите строительство сложного объекта из его представления, так что тот же процесс строительства может создавать различные представления (шаблоны дизайна: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Создавайте документы в формате HTML и текстовый формат. Можно создать разные документы в том же процессе строительства. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Определите интерфейс для создания объекта, но пусть подклассы решают, какой класс для создания экземпляра. Фабричный метод позволяет классифицированию класса отсрочки до подклассов (узоры дизайна: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Предмет – это фабрика, чтобы сделать кредитные карты. Завод определяет, как создать кредитную карту, но фактическая кредитная карта создана кредитными картами. «CreateProduct ()» называется заводским методом, и он отвечает за изготовление объекта. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Отображение строки, заключенной с линией кадров, или нарисована с подчеркиванием. Клиент (основные) регистрирует экземпляры подкласса дисплея в классе Manager. При необходимости класс Manager задает эти зарегистрированные экземпляры для возврата клона. Клиент (Main) требует от возврата клонов для отображения. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Убедитесь, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему (узоры проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Проверьте, получен ли тот же экземпляр. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

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

Об этом Пример Показать данную строку следующим образом Введите полноэкранный режим Выйдите из полноэкранного режима или отобразить его следующим образом. Введите полноэкранный режим Выйдите из полноэкранного режима Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Отсоедините абстракцию от его реализации, чтобы два могли варьироваться независимо (модели проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Отобразите только одну строку или отобразить указанное количество строк. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Составьте объекты в древесные структуры для представления иерархий целых деталей. Композит позволяет клиентам обрабатывать отдельные объекты и композиции объектов равномерно (шаблоны дизайна: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Представляет файловую систему, состоящую из файлов и каталогов. FileSystemElement позволяет равномерно обрабатывать файл и каталог. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Прикрепить дополнительные обязанности динамически объекта. Декораторы обеспечивают гибкую альтернативу подклассу для расширения функциональности (конструкции шаблонов: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Показать строку с декоративными рамами. Рамки могут быть объединены произвольно. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Укажите единый интерфейс для набора интерфейсов в подсистеме. Фасад определяет интерфейс более высокого уровня, который облегчает использование подсистемы (узоры дизайна: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Создайте простую домашнюю страницу через фасад (PageCreator). Фасад получает информацию из Datalibrary и использует информацию для создания HTML-файла. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Используйте совместное использование для эффективного обеспечения большого количества мелкозернистых объектов (узоры проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Показать строку, состоящую из больших символов (только 0-9 цифр). Большие объекты символов не создаются, пока они не будут необходимы. И созданные объекты повторно используются. Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

Схема намерения Предоставьте суррогатное или заполнителю для другого объекта для контроля доступа к нему (узоры проектирования: элементы многоразового объектно-ориентированного программного обеспечения).

Об этом Пример Печать на именем принтере. Настройка и изменение имени принтера выполняется по прокси (ProxyPrinter). Во время печати в первый раз создайте экземпляр RealSubject (RealPrinter). Результат выполнения: Код Python: || Вид на Github

Откройте диаграмму на полном экране

  • Гамма, E. et al. Шаблоны дизайна: элементы многоразового объектно-ориентированного программного обеспечения, Addison-Wesley, 1994
  • Хироши Юки. Учетные узоры дизайна в Java [на японском языке], Издательство Softbank, 2004

Оригинал: “https://dev.to/takaakit/uml-diagram-for-gof-design-pattern-examples-in-python-4j40”