Я никогда не слышал о множественной отправке ранее, но, взглянув на страницу Википедии, он очень похож на MD - это тип полиморфизма при использовании с аргументами метода.
Полиморфизм - это по существу концепция, что объект можно рассматривать как любой тип, который является его базой. Поэтому, если у вас есть автомобиль и грузовик, их можно рассматривать как автомобиль. Это означает, что вы можете вызвать любой метод транспортного средства для одного.
Множественная отправка выглядит аналогичной, поскольку она позволяет вам вызывать методы с аргументами нескольких типов, однако я не вижу определенных требований в описании. Во-первых, он, как представляется, не требует общего базового типа (не то, что я мог представить, что реализую THAT без void *), и вы можете задействовать несколько объектов.
Поэтому вместо вызова метода Start() для каждого объекта в списке, который является примером классического полиморфизма), вы можете вызвать метод StartObject (Object C), определенный в другом месте, и запрограммировать его для проверки типа аргумента во время выполнения и обрабатывать его соответствующим образом. Разница здесь в том, что метод Start() должен быть встроен в класс, тогда как метод StartObject() может быть определен вне класса, поэтому различным объектам не нужно соответствовать интерфейсу.
Что может быть приятно, если метод Start() необходимо вызвать с разными аргументами. Может быть, Car.Start (Key carKey) vs. Missile.Start (интермедиат launchCode)
Но как можно было бы назвать StartObject (theCar) или StartObject (theMissile)
Интересная концепция ...
Это очень хороший ответ - если вы добавите короткие фрагменты кода, чтобы показать пример каждого из них, я думаю, что я буду принимать его в качестве ответа. – raldi 2008-09-24 04:13:58