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

Объектно-Ориентированные шаблоны проектирования

Чем дольше я пишу программы, тем больше понимаю, что одни и те же проблемы возникают снова и снова… С тегами шаблоны проектирования, учебное пособие, java, ооп.

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

Шаблон проектирования – это решение общей проблемы. Эти шаблоны собираются сообществом разработчиков программного обеспечения, чтобы зафиксировать их опыт, чтобы ими можно было поделиться с другими. Знание наиболее распространенных шаблонов проектирования сделает вас лучшим OO-программистом.

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

В этом посте описаны некоторые из наиболее распространенных шаблонов объектно-ориентированного проектирования, и в него включены полностью разработанные программы, которые их реализуют. Вам будет предложено следовать приведенным ниже программам. Я использую Java но я верю, что вы можете понять код, даже если используете другой язык OO.

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

Стратегия

Шаблон стратегии описывает, как подключать различные алгоритмы к классу во время выполнения программы.

Синглтон

Шаблон singleton описывает, как гарантировать, что создается только один экземпляр класса.

Составной

Составной шаблон описывает, как создавать отношения целое/часть между похожими элементами.

Оформитель

Шаблон декоратора описывает, как добавить новую функциональность в класс, обернув его в другой.

Государство

Шаблон состояния описывает, как реагировать на набор событий в зависимости от состояния системы.

Наблюдатель

Шаблон наблюдателя описывает, как уведомлять группу объектов при изменении одного из них.

Полномочие

Шаблон прокси-сервера описывает, как добавить функциональность между объектами, которые имеют отношения клиент/сервер.

Фабрика

Шаблон фабрики описывает, как создавать семейства объектов вместе.

Посетитель

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

Комментарии и отзывы

Вы можете найти все эти воспроизведения кода в моей бесплатной “книге”, Шаблоны проектирования OO с помощью Java . Я всегда ищу обратную связь, поэтому, пожалуйста, не стесняйтесь комментировать здесь или отправлять мне сообщение. Вы можете следить за мной в твиттере @markm208 .

Оригинал: “https://dev.to/markm208/object-oriented-design-patterns-4013”