Урок №146. Типы связей между объектами

  Юрий  | 

  Обновл. 5 Окт 2020  | 

 13890

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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