Основные паттерны ооп java

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Паттерны проектирования с примерами. Разбираем на практике.

AlexLeXX444/JAVA-patterns

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Достичь понимания основных паттернов проектирования на примерах их использования. Также напонить основные принципы ООП.

Объектно Ориентированное Программирование (ООП) — парадигма программирования, в которой ключевым блоком является объект, который относится с объектом в конкретной задаче.

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

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

Источник

Паттерны проектирования в Java [Часть 1]

Java-университет

Паттерны проектирования в Java [Часть 1] - 1

Это краткая статья по паттернам проектирования в Java. Реализации паттернов не будет, тут только список паттернов которые есть в java и их краткое содержание. Она будет полезна тем, кто уже в теме, для повторения и обобщения. Или напротив, для тех, кто первый раз подошёл к паттернам — для самого первого обзора темы, прежде, чем копнуть глубже. Паттерны проектирования (шаблоны проектирования) — это готовые к использованию решения часто возникающих в программировании задач. Это не класс и не библиотека, которую можно подключить к проекту, это нечто большее. Паттерны проектирования, подходящий под задачу, реализуется в каждом конкретном случае. Следует, помнить, что такой паттерн, будучи примененным неправильно или к неподходящей задаче, может принести немало проблем. Тем не менее, правильно примененный паттерн поможет решить задачу легко и просто. Типы паттернов:

  • порождающие
  • структурные
  • поведенческие

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

  • Singleton (Одиночка) — ограничивает создание одного экземпляра класса, обеспечивает доступ к его единственному объекту.
  • Factory (Фабрика) — используется, когда у нас есть суперкласс с несколькими подклассами и на основе ввода, нам нужно вернуть один из подкласса.
  • Abstract Factory (Абстрактная фабрика) — используем супер фабрику для создания фабрики, затем используем созданную фабрику для создания объектов.
  • Builder (Строитель) — используется для создания сложного объекта с использованием простых объектов. Постепенно он создает больший объект от малого и простого объекта.
  • Prototype (Прототип) — помогает создать дублированный объект с лучшей производительностью, вместо нового создается возвращаемый клон существующего объекта.
Читайте также:  Зачем нужен docker python

Структурные:

  • Adapter (Адаптер) — это конвертер между двумя несовместимыми объектами. Используя паттерн адаптера, мы можем объединить два несовместимых интерфейса.
  • Composite (Компоновщик) — использует один класс для представления древовидной структуры.
  • Proxy (Заместитель) — представляет функциональность другого класса.
  • Flyweight (Легковес) — вместо создания большого количества похожих объектов, объекты используются повторно.
  • Facade (Фасад) — беспечивает простой интерфейс для клиента, и клиент использует интерфейс для взаимодействия с системой.
  • Bridge (Мост) — делает конкретные классы независимыми от классов реализации интерфейса.
  • Decorator (Декоратор) — добавляет новые функциональные возможности существующего объекта без привязки его структуры.

Поведенческие:

  • Template Method (Шаблонный метод) — определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
  • Mediator (Посредник) — предоставляет класс посредника, который обрабатывает все коммуникации между различными классами.
  • Chain of Responsibility (Цепочка обязанностей) — позволяет избежать жесткой зависимости отправителя запроса от его получателя, при этом запрос может быть обработан несколькими объектами.
  • Observer (Наблюдатель) — позволяет одним обьектам следить и реагировать на события, происходящие в других объектах.
  • Strategy (Стратегия) — алгоритм стратегии может быть изменен во время выполнения программы.
  • Command (Команда) — интерфейс команды объявляет метод для выполнения определенного действия.
  • State (Состояние) — объект может изменять свое поведение в зависимости от его состояния.
  • Visitor (Посетитель) — используется для упрощения операций над группировками связанных объектов.
  • Interpreter (Интерпретатор) — определяет грамматику простого языка для проблемной области.
  • Iterator (Итератор) — последовательно осуществляет доступ к элементам объекта коллекции, не зная его основного представления.
  • Memento (Хранитель) — используется для хранения состояния объекта, позже это состояние можно восстановить.

Проходя курс JavaRush вы встретите пару паттернов из этого списка. Рекомендую задачи по паттернам: 1522, 1530, 1631, big01, 2912, 3107. Разумное использование паттернов проектирования приводит к повышению надежности обслуживания кода, поскольку в дополнение к тому, чтобы быть хорошим решением общей проблемы, паттерны проектирования могут быть распознаны другими разработчиками, что уменьшает время при работе с определенным кодом. Паттерны проектирования в Java [Часть 2]

Читайте также:  Php время обновления сессии

Источник

Оцените статью