Python: Полиморфизм
Теория: Объектная композиция
Часто разработчикам нужно управлять сложными структурами данных и связями между объектами. Когда система становится все больше и сложнее, организация и структурирование кода может стать вызовом. Именно здесь на помощь приходит принцип объектной композиции.
Объектная композиция предлагает подход, в котором сложные объекты создаются путем объединения более простых объектов. Этот подход позволяет строить гибкие и масштабируемые структуры данных, упрощает управление взаимосвязями между объектами и облегчает расширение и поддержку системы.
В этом уроке мы рассмотрим принцип объектной композиции и изучим, как его применять на практике.
Применение объектной композиции
Объектная композиция — это принцип проектирования программного обеспечения, согласно которому сложные объекты составляются из более простых. Этот подход позволяет создавать гибкие и масштабируемые структуры данных.
Представим, что мы создаем систему для управления больницей. У нас есть классы, которые представляют врачей, пациентов и отделения:
В данном примере у нас есть три базовых класса: Doctor — врач, Patient — пациент и Department — отделение. Каждый из этих классов представляет собой отдельную сущность в контексте больницы.
В больнице у каждого врача есть список пациентов, и каждый врач работает в определенном отделении. Это можно представить с помощью композиции:
Теперь, когда мы начинаем строить взаимосвязи между этими классами, вступает в игру принцип композиции. В нашем контексте каждый врач (Doctor) работает в определенном отделении (Department) и имеет список пациентов (Patient). Мы реализуем эти связи в классе Doctor путем включения экземпляров Department и Patient в его состав.
В этом примере класс Doctor состоит из объектов классов Department и Patient. Мы можем добавить пациентов к врачу с помощью метода add_patient:
Здесь мы создаем экземпляры каждого из наших классов и налаживаем связи между ними. Мы создаем отделение, врача, привязываем врача к отделению и добавляем пациентов в список пациентов врача.
В результате у нас получается сложная структура данных, которая отражает реальную структуру больницы. Это позволяет нам легко моделировать сложные отношения между различными объектами.
Выводы
Объектная композиция — инструмент для создания сложных структур данных. Она позволяет создавать гибкие и масштабируемые системы, которые легко расширяются и поддерживаются.

.png)
