Вопрос по паттерну Стратегия (доступ к данным)
От: Максим Рогожин Россия  
Дата: 23.07.17 07:42
Оценка:
Привет Всем!

В соответствии с паттерном Стратегия нужно вынести алгоритм из класса C в отдельный класс S. Но как алгоритм, вынесенный в отдельный класс S, получит доступ к данным хранящимся в исходном классе C? Получается, что нужно чтобы исходный класс C обеспечивал, с помощью публичных методов, доступ ко всем своим данным, которые требуются алгоритму (реализованному в классе S)?
Отредактировано 23.07.2017 7:44 Максим Рогожин . Предыдущая версия .
Re: Вопрос по паттерну Стратегия (доступ к данным)
От: Qulac Россия  
Дата: 23.07.17 10:41
Оценка:
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет Всем!


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


В большинстве случаев стратегия это сервис, который получает данные и возвращает результат. Например: получает табель и считает зарплату сотруднику, доступ для этого ко всему классу ей не нужен.
Программа – это мысли спрессованные в код
Re: Вопрос по паттерну Стратегия (доступ к данным)
От: iZEN СССР  
Дата: 23.07.17 10:53
Оценка:
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет Всем!


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


Анонимные классы и лямбды не подходят?
Re: Вопрос по паттерну Стратегия (доступ к данным)
От: Sharov Россия  
Дата: 24.07.17 11:37
Оценка:
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет Всем!


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


Объект C будет теперь только инкапсулировать данные, и никакого поведения кроме предоставления данных.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.