Ассоциация агрегация композиция python

Терминология#

Интерфейс — набор атрибутов и методов, которые реализуют определенное поведение. Примеры: итератор, менеджер контекста, последовательность.

Наследование (Inheritance)#

Наследование — концепция ООП, которая возволяет дочернему классу использовать компоненты (методы и переменные) родительского класса.

Как правило, для наследования есть две основные причины:

В Python синтаксис наследования используется с абстрактными классами для наследования интерфейса/протокола. Кроме того, синтаксис наследования используется с Mixin.

Агрегирование (Aggregation)#

Агрегация (агрегирование по ссылке) — отношение «часть-целое» между двумя равноправными объектами, когда один объект (контейнер) имеет ссылку на другой объект. Оба объекта могут существовать независимо: если контейнер будет уничтожен, то его содержимое — нет.

Композиция (Composition)#

Композиция (агрегирование по значению) — более строгий вариант агрегирования, когда включаемый объект может существовать только как часть контейнера. Если контейнер будет уничтожен, то и включённый объект тоже будет уничтожен.

from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates')) template = env.get_template('router_template.txt') 

Полиморфизм (Polymorphism)#

Как правило, различают два варианта полиморфизма:

  1. способность функции/метода обрабатывать данные разных типов
  2. один интерфейс — много реализаций. Пример: одно и то же имя метода в разных классах

Метакласс (Metaclass)#

Метакласс — это класс экземпляры которого тоже являются классами.

Абстрактный класс (abstract class)#

Абстрактный класс — базовый класс, который не предполагает создания экземпляров. Как правило, содержит абстрактные методы — методы, которые обязательно должны быть созданы в дочерних классах.

В Python абстрактные классы часто используются для создания интерфейса/протокола.

Примесь (Mixin)#

Примесь это класс, который реализует какое-то одно ограниченное поведение (метод).

В Python примеси делаются с помощью классов. Так как в Python нет отдельного типа для примесей, классам-примесям принято давать имена заканчивающиеся на Mixin.

Источник

Читайте также:  Histogram in python numpy
Оцените статью