Примесь
При́месь (англ. mix in) — элемент языка программирования (обычно класс или модуль), реализующий какое-либо чётко выделенное поведение. Используется для уточнения поведения других классов, не предназначен для порождения самостоятельно используемых объектов.
В объектно-ориентированных языках программирования является способом реализации классов, отличным от широко используемых принципов, пришедших из языка программирования Simula. Механизм впервые реализован в Flavors[en]. Преимуществом примесей является то, что повышая повторную используемость текстов программ, этот метод избегает многих проблем множественного наследования. Однако при этом метод накладывает свои ограничения.
В большинстве объектно-ориентированных языков, начиная с Simula, класс определяется атрибутами, методами, конструкторами и деструкторами как единое, тесно связанное целое. Определение класса обладает полнотой. Именно этот факт показался полезным Страуструпу и Эллис, которые на этом основании не стали реализовывать примеси в Си++ на уровне языка (Си++ разрабатывался как совместимое расширение Си в сторону Симулы
)[?].
В языке с использованием примесей класс определяется только с атрибутами и параметрами, связанными с классом. Методы определяются в другом месте, как в Flavors и CLOS, и являются обобщёнными функциями[англ.]. Последние реализуются для различных типов посредством диспетчеризации.
См. также[править | править код]
Ссылки[править | править код]
- Mix In (англ.) — описание данного метода программирования.