Вот В русскоязычной ссылке на Википедию есть пример реализации Command Design Pattern на C ++. Как я понимаю из реализации по сравнению с диаграммой классов UML, я вижу, что:
Также, как видно из диаграммы, Invoker объединяет Command. Но в нашем случае класс Document не объединяет Команду. Это ошибка? Или это вариант шаблона командования? Насколько строго следует следовать UML-диаграмме при разработке конкретного шаблона?
Наименования для примера C ++ не так хороши, я понимаю их следующим образом:
Document
это Receiver
объект для применения командReceiver
класс действует как Invoker
с точки зрения предоставленной UML диаграмма. main
метод является Client
Вы можете взглянуть на пример Java, он более чистый.
Других решений пока нет …