Здравствуйте, remark, Вы писали:
R>Двойная диспетчеризация — есть способ реализации мультиметодов. Так же как switch-on-type есть способ реализации динамического полиморфизма.
R>Если есть 2 или более типов и код, который необходимо выполнить, зависит от этих типов, то это мультиметод. По определению. А как их реализовывать — это уже другой вопрос. С помощью if'ов, двойной диспетчеризации, шаблонных наворотов, или с помощью поддержки в языке.
Я как бы писал про то, что если сотавить матрицу, где по вертикали отложить типы пули, по горизонтали типы монстров, а в клетку -- обработчик, то в задачах, которые я встречал вообще, эта матрица была очень сильно вырожденной.
Ну типа там почти во всех клетках был дефолтный какой-то обработчик, и какой-то столбик или строка были заполнены.
Ну и ещё где-то в нескольких местах были другие обработчики.
Собственно мне кажется, что специальная сложная реализация этой матрицы, которая умеет делать всё хорошо для случая невырожденной матрицы, оказывается излишней в случае вырожденной. Про это речь собсвтенно
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском