Урок №146. Отношения между объектами

  Юрий  | 

  Обновл. 23 Июн 2019  | 

 7495

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

Например, мы идём по улице и видим ярко-жёлтый объект на зелёном продолговатом объекте. Мы понимаем, что ярко-желтый объект — это цветок, а зелёный — стебель. Даже если мы до этого никогда не видели такое растение, мы всё равно понимаем, что объекты на стебле являются листьями, которые взаимодействуют с солнечным светом, а цветок помогает растению в размножении и выживании. Мы также знаем, что, если убить растение, то цветок тоже умрёт.

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

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

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

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

Однако мы ещё достаточно не фокусировались на взаимосвязях между объектами в программировании.

Связи между объектами в программировании

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

   Квадрат «является» геометрической фигурой.

   Автомобиль «имеет» руль.

   Программист «использует» клавиатуру.

   Цветок «зависит от» растения.

   Ученик является «членом» класса.

   Наш мозг существует как «часть» нас самих.

Все эти типы отношений имеют свои аналоги в C++.

В этой главе мы рассмотрим нюансы типов отношений «имеет», «использует», «зависит от», «член чего-то» и «часть чего-то», и покажем, как они могут быть полезными в контексте классов в C++.

Затем мы перейдём к изучению отношений типа «является», рассматривая наследование и виртуальные функции в C++.


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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (61 оценок, среднее: 4,89 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *