В своей книге «Advanced С++:

Автор admin Четверг, 18 июня 2009 11:32

В своей книге «Advanced С++: Programming Styles and Idioms» (Addison Wesley, 1992) Джим Коплин (Jim Coplien) вводит термин функтор — объект, предназначенный только для инкапсуляции функции (поскольку этот термин также встречается в математике, мы остановимся на более однозначном термине объект функции). Этот объект нужен, чтобы отделить выбор вызываемой функции от места ее вызова. В книге БЧ объект функции упоминается, но не используется. С другой стороны, концепция объектов функций повторяется в нескольких рассматриваемых паттернах. Команда представляет собой объект функции в его изначальном смысле — это функция, оформленная в виде объекта. Инкапсулируя функцию в объекте, можно передать ее другим функциям или объектам в качестве параметра, приказывая им выполнить конкретную операцию в процессе обработки запроса. Можно сказать, что Команда является частным случаем Посыльного, в котором передаются не данные, а операции. //: C10:CommandPattern.cpp #include #i nclude using namespace std: class Command { public: virtual void executeO = 0: }: class Hello : public Command { public: void e


Комментарии закрыты.