В соответствии с паттерном Стратегия нужно вынести алгоритм из класса C в отдельный класс S. Но как алгоритм, вынесенный в отдельный класс S, получит доступ к данным хранящимся в исходном классе C? Получается, что нужно чтобы исходный класс C обеспечивал, с помощью публичных методов, доступ ко всем своим данным, которые требуются алгоритму (реализованному в классе S)?