Многие вводные статьи и учебники по «попсовому» объектно-ориентированному программированию (где под «попсовым» подразумевается то, что мы имеем, например, в C++ и Java) содержат примеры с классами «фигурка», «треугольничек» и так далее. Примеры, кстати, получаются очень стройными, но к сожалению элегантность редко просачивается из учебников в реальный код. Тема этого поста —
multiple dispatch — фундаментальная возможность, которая отсутствует во многих распространенных языках, называющих себя объектно-ориентированными. Я тоже выберу популярный подход с «фигурками» и «треугольничками». Мои примеры — весьма абстрактные, но том или другом виде встречаются очень часто в реальных системах.
( дальше... )