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

   ⁄ 

 Обновлено 9 Июн 2018  ⁄ 

⁄   350

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

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

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

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

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

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



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

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

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

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

  автомобиль «имеет» руль;

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

  цветок «зависит от» растения;

  ученик является «членом» класса;

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

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

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

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

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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (6 оценок, среднее: 5,00 из 5)
Загрузка...
Подписаться на обновления:

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

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

ПОДПИСЫВАЙТЕСЬ

НА КАНАЛ RAVESLI В TELEGRAM

@ravesli

ПОДПИСАТЬСЯ БЕСПЛАТНО