Я бы почти всегда использовал стратегию по очень важной причине, по которой клиентский код не зависит от реализации, тогда как в шаблонной части часть реализации остается в абстрактном классе, и любое изменение в абстрактном классе может потребовать изменения клиента, который очень часто В результате получается жесткий код, и в итоге разработчик говорит, что «это оказалось большим изменением, чем я ожидал».
Но в тех случаях, когда действительно полезно получить общий код в абстрактном классе, я, не колеблясь, сделаю это, а также постараюсь сохранить от него код, связанный с клиентским кодом