Я нещодавно почав розглядати шаблони дизайну, і одне, що я кодую, цілком відповідала б шаблону стратегії, за винятком однієї невеликої різниці.
По суті, деякі (але не всі) моїх алгоритмів потребують додаткового параметра або двох, переданих їм.
Тож мені або потрібно буде
- передайте їм додатковий параметр, коли я викликаю їхній метод обчислення
або
- зберігати їх як змінні всередині класу ConcreteAlgorithm і мати змогу оновити їх до того, як я викличу алгоритм.
Чи існує модель дизайну для цієї потреби / Як я можу це реалізувати, дотримуючись Шаблону стратегії?
Я розглядав можливість передачі клієнтського об'єкта всім алгоритмам і зберігання там змінних, а потім використовувати його лише тоді, коли конкретний алгоритм цього потребує. Однак я вважаю, що це одночасно і непросто, і перемагає точку стратегії.
Просто для того, щоб було зрозуміло, я реалізую в Java, і тому не маю розкіш додаткових параметрів (що б це добре вирішити).