Я недавно начал изучать шаблоны проектирования, и одна вещь, которую я кодирую, идеально подошла бы к шаблону стратегии, за исключением одного небольшого различия.
По сути, некоторые (но не все) из моих алгоритмов нуждаются в дополнительном параметре или двух передаваемых им.
Так что мне либо нужно
- передать им дополнительный параметр, когда я вызываю их метод вычисления
или же
- сохраните их как переменные внутри класса ConcreteAlgorithm и сможете обновить их, прежде чем я вызову алгоритм.
Существует ли шаблон проектирования для этой потребности / Как я могу реализовать это, придерживаясь шаблона стратегии?
Я рассмотрел передачу объекта client во все алгоритмы и сохранение там переменных, а затем использовал его только тогда, когда это требуется конкретному алгоритму. Тем не менее, я думаю, что это и громоздко, и побеждает смысл стратегии.
Просто чтобы прояснить, я реализую в Java, и поэтому не могу позволить себе роскошь дополнительных параметров (что решило бы это хорошо).