Урок №154. Типи зв’язків між об’єктами

  Юрій  | 

  Оновл. 19 Лют 2021  | 

 55

Наше життя сповнене повторюваних шаблонів, відносин і ієрархій між об’єктами. Вивчаючи їх, ми отримуємо більш глибоке уявлення про те, як вони працюють і взаємодіють між собою в реальному житті.

Наприклад, ми йдемо по вулиці і бачимо яскраво-жовтий об’єкт на зеленому довгому об’єкті. Ми розуміємо, що яскраво-жовтий об’єкт — це квітка, а зелений — стебло. Навіть якщо ми до цього моменту ніколи не бачили таку рослину, ми все одно розуміємо, що об’єктами на стеблі є листя, яке взаємодіє з сонячним світлом, а квітка допомагає рослині в розмноженні і виживанні. Ми також знаємо, що, якщо зірвати рослину, квітка теж загине.

Але як ми можемо це знати і судити про цей об’єкт як про рослину, ніколи не зустрічаючи його до цього моменту? Справа в тому, що у нас є знання про рослини і ми усвідомлюємо, що об’єкт, який ми зустріли на вулиці, відноситься саме до рослин. Ми знаємо, що більшість рослин мають листя, а деякі ще й квітки. Також ми знаємо, що листя взаємодіє з сонячним світлом (навіть якщо не розуміємо повний процес цієї взаємодії), і існування квітки безпосередньо залежить від рослини. І оскільки ми все це знаємо, і це відноситься до рослин, то ми можемо робити подібні висновки і про об’єкт на вулиці, який відповідає нашим знанням про рослини.

Аналогічно, в програмуванні також багато повторюваних шаблонів, відносин і ієрархій. Зокрема, коли мова заходить про об’єкти в програмуванні, то ті ж шаблони, якими ми керуємося по відношенню до об’єктів в реальному житті, можна застосувати й до об’єктів в програмуванні, які ми створюємо самі. Вивчаючи ці відносини, шаблони і ієрархії докладніше, ми можемо зрозуміти, як поліпшити код для його повторного використання в інших програмах і як писати класи, функціонал яких можна буде легко розширити.

На попередніх уроках ми вже розглядали принципи, які стосуються повторюваних шаблонів: ми писали цикли і функції, які виконували певні дії багато разів. Крім того, ми створювали свої власні перерахування, структури, класи і об’єкти цих перерахувань, структур і класів.

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

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

Зв’язки між об’єктами в програмуванні

Існує багато різних типів відносин, які два об’єкти можуть мати в реальному житті, і ми використовуємо певні слова (типи відносин) для їх опису, наприклад:

   Квадрат «є» геометричною фігурою.

   Автомобіль «має» кермо.

   Програміст «використовує» клавіатуру.

   Квітка «залежить від» рослини.

   Учень є «членом» класу.

   Наш мозок існує як «частина» нас самих.

Всі ці типи відносин мають свої аналоги в мові С++.

На наступних уроках ми розглянемо нюанси типів відносин «має», «використовує», «залежить від», «член чогось» і «частина чогось», і покажемо, як вони можуть бути корисними в контексті класів в C++.

Потім ми перейдемо до вивчення відносин типу «є», розглядаючи спадкування і віртуальні функції в C++.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (3 оцінок, середня: 5,00 з 5)
Loading...

Залишити відповідь

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