«Погружение в паттерны проектирования»

1862

Описание

Эта книга состоит из описания 22-х классических паттернов проектирования, впервые открытых «Бандой Четырёх» ("Gang of Four" или просто GoF) в 1994 году. Каждая глава книги посвящена только одному паттерну. Поэтому, книгу можно читать как последовательно, от края до края, так и в произвольном порядке, выбирая только интересные в данный момент паттерны. Многие паттерны связаны между собой, поэтому вы сможете с лёгкостью прыгать по связанным темам, используя ссылки, которых в книге имеется в достатке. В конце каждой главы приведены отношения текущего паттерна с остальными. Если вы видите там название паттерна, до которого ещё не добрались, то попросту читайте дальше - этот пункт будет повторён в другой главе.



5 страница из 126
читать на одной стр.
Настроики
A

Фон текста:

  • Текст
  • Текст
  • Текст
  • Текст
  • Аа

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

стр.

Теперь, представьте, что мы поместили нескольких собак и котов в здоровенный мешок. Затем, мы будем с закрытыми глазами вытаскивать их по одной из мешка. Вытянув зверушку, мы не знаем какого она класса. Но если её погладить, она точно издаст какой-то звук, зависящий от её класса.

bag = [new Cat(), new Dog()];foreach (Animal a : bag)  a.makeSound()  // Meow!// Bark!

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

Полиморфизм — это способность программы выбирать различные реализации, при вызове операций с одним и тем же названием.

С другой стороны, полиморфизм — это способность объектов притворяться чем-то другим. В приведённом выше примере, собаки и коты «притворялись» абстрактными животными.

Отношения между объектами

Кроме наследования и реализации есть ещё несколько видов отношений между объектами, о которых мы ещё не говорили.

Ассоциация в UML-диаграммах. Профессор взаимодействует со студентами.

Ассоциация — это когда один объект использует другой, либо зависит от него. В UML ассоциация обозначается простой стрелкой, которая направлена в сторону зависимости. Двустороння ассоциация между объектами вполне допустима.

Композиция в UML-диаграммах. Университет состоит из кафедр.

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

Агрегация в UML-диаграммах. Кафедра содержит профессоров.

Агрегация — это менее строгий вариант композиции, когда один объект просто имеет ссылку на другой объект. Здесь контейнер не управляет жизненным циклом компонента. Компонент может существовать отдельно от контейнера. В UML агрегация изображается как композиция, но с пустым ромбом.

ОСНОВЫ ПАТТЕРНОВ Что такое паттерн?

Паттерн проектирования — это часто встречаемое решение определённой проблемы при проектировании архитектуры программ.

Комментарии к книге «Погружение в паттерны проектирования», Александр Швец

Всего 0 комментариев

Комментариев к этой книге пока нет, будьте первым!

РЕКОМЕНДУЕМ К ПРОЧТЕНИЮ

Популярные и начинающие авторы, крупнейшие и нишевые издательства