Interested Article - Понижающее приведение

В объектно-ориентированном программировании понижающее приведение ( англ. downcasting ) или «уточнение типа» ( англ. type refinement ) — акт приведения типа, ссылающегося на базовый класс, к одному из его производных классов.

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

Критика

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

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

См. также

Дополнительные источники

  • Статья « » (англ.)
  • Статья « » (англ.)
  • Статья « » (англ.)
  • Статья « » (англ.)
  • Документ « » (англ.)
  • — в статье кратко рассматриваются примеры повышающего и понижающего приведения и приводятся примеры их использования. (рус.)
  • (рус.)
Источник —

Same as Понижающее приведение