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

1862

Описание

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



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

Фон текста:

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

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

стр.

Инкапсуляция — это способность объектов скрывать часть своего состояния и поведения от других объектов, предоставляя внешнему миру только определённый интерфейс взаимодействия с собой.

Например, вы можете инкапсулировать что-то внутри класса, сделав его приватным (private) и скрыв доступ к этому полю или методу для объектов других классов. Более открытый режим видимости protected сделает это поле или метод доступным в подклассах.

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

Многих путает, что словом «интерфейс» называют и публичную часть объекта, и конструкцию interface из большинства языков программирования.

В объектном языке программирования, с помощью интерфейсов (обычно объявляемых через ключевое слово interface) можно явно описывать «контракты» взаимодействия объектов.

Например, вы создали интерфейс ЛетающийТранспорт с методом лететь(откуда, куда, пассажиры), а затем описали методы класса Аэропорта так, чтобы они принимали любые объекты с этим интерфейсом. Теперь вы можете быть уверены, что любой объект, реализующий интерфейс — будь то Самолёт, Вертолёт или ДрессированныйГрифон, сможет работать с Аэропортом.

UML-диаграмма реализации и использования интерфейса.

Вы можете как угодно менять код классов, реализующих интерфейс, не беспокоясь о том, что Аэропорт перестанет быть с ними совместимым.

Наследование

Наследование — это возможность создание новых классов на основе существующих. Главная польза от наследования — повторное использование существующего кода. Расплата за наследование проявляется в том, что подклассы всегда следуют интерфейсу родительского класса. Вы не можете исключить из подкласса метод, объявленный в его родителе.

UML-диаграмма единичного наследования против реализации множества интерфейсов.

В большинстве объектных языков программирования, класс может иметь только одного родителя. Но с другой стороны, класс может реализовывать несколько интерфейсов одновременно.

Полиморфизм

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

UML-диаграмма единичного наследования против реализации множества интерфейсов.

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

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

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

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

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