Как сделать сравнение ответственность объекта, который передается в процедуру сортировки по шаблону стратегии?
Я начал самостоятельно изучать шаблоны проектирования из Design Patterns от Gang of Four
Параметризованные типы дают нам третий способ (в дополнение к наследованию классов и составлению объектов) для составления поведения в объектно-ориентированных системах. Многие проекты могут быть реализованы с использованием любого из этих трех методов. Чтобы параметризовать процедуру сортировки по операции, которую она использует для сравнения элементов, мы могли бы сделать сравнение
- операция, реализованная подклассами (применение шаблона Template (325)),
- ответственность объекта, который передается в процедуру сортировки (Стратегия (315)), или
- аргумент шаблона C++ или Ada generic, который задает имя функции, вызываемой для сравнения элементов.
Я посмотрел шаблон стратегии, но все еще интересовался, как сделать второй способ "сделать сравнение объектом, который передан в процедуру сортировки (Стратегия)"?
Я был бы признателен за некоторые примеры на любом языке ОО: C++, C#, Java, Python, ...
Благодарю.